阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Spark On YARN 集群安装部署

429次阅读
没有评论

共计 6978 个字符,预计需要花费 18 分钟才能阅读完成。

最近毕设需要用到 Spark 集群,所以就记录下了部署的过程。我们知道 Spark 官方提供了三种集群部署方案:Standalone, Mesos, YARN。其中 Standalone 最为方便,本文主要讲述结合 YARN 的部署方案。

软件环境:

Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)
Hadoop: 2.6.0
Spark: 1.3.0

0 写在前面
本例中的演示均为非 root 权限,所以有些命令行需要加 sudo,如果你是 root 身份运行,请忽略 sudo。下载安装的软件建议都放在 home 目录之上,比如~/workspace 中,这样比较方便,以免权限问题带来不必要的麻烦。

1. 环境准备
修改主机名
我们将搭建 1 个 master,2 个 slave 的集群方案。首先修改主机名 vi /etc/hostname,在 master 上修改为 master,其中一个 slave 上修改为 slave1,另一个同理。

配置 hosts
在每台主机上修改 host 文件

vi /etc/hosts

10.1.1.107      master
10.1.1.108      slave1
10.1.1.109      slave2

配置之后 ping 一下用户名看是否生效

ping slave1
ping slave2

SSH 免密码登录
安装 Openssh server

sudo apt-get install openssh-server

在所有机器上都生成私钥和公钥

ssh-keygen -t rsa  #一路回车

需要让机器间都能相互访问,就把每个机子上的 id_rsa.pub 发给 master 节点,传输公钥可以用 scp 来传输。

scp ~/.ssh/id_rsa.pub spark@master:~/.ssh/id_rsa.pub.slave1

在 master 上,将所有公钥加到用于认证的公钥文件 authorized_keys 中

cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys

将公钥文件 authorized_keys 分发给每台 slave

scp ~/.ssh/authorized_keys spark@master:~/.ssh/

在每台机子上验证 SSH 无密码通信

ssh master
ssh slave1
ssh slave2

如果登陆测试不成功,则可能需要修改文件 authorized_keys 的权限(权限的设置非常重要,因为不安全的设置安全设置, 会让你不能使用 RSA 功能)

chmod 600 ~/.ssh/authorized_keys

安装 Java
从官网下载最新版 Java 就可以,Spark 官方说明 Java 只要是 6 以上的版本都可以,我下的是 jdk-7u75-linux-x64.gz
在~/workspace 目录下直接解压

tar -zxvf jdk-7u75-linux-x64.gz

修改环境变量 sudo vi /etc/profile,添加下列内容,注意将 home 路径替换成你的:

export WORK_SPACE=/home/spark/workspace/
export JAVA_HOME=$WORK_SPACE/jdk1.7.0_75
export JRE_HOME=/home/spark/work/jdk1.7.0_75/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

然后使环境变量生效,并验证 Java 是否安装成功

$ source /etc/profile  #生效环境变量
$ java -version        #如果打印出如下版本信息,则说明安装成功
java version “1.7.0_75”
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

安装 Scala
Spark 官方要求 Scala 版本为 2.10.x,注意不要下错版本,我这里下了 2.10.4,官方下载地址(我们下载 Scala 龟速一般)。

同样我们在~/workspace 中解压

tar -zxvf scala-2.10.4.tgz

再次修改环境变量 sudo vi /etc/profile,添加以下内容:

export SCALA_HOME=$WORK_SPACE/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin

同样的方法使环境变量生效,并验证 scala 是否安装成功

$ source /etc/profile  #生效环境变量
$ scala -version        #如果打印出如下版本信息,则说明安装成功
Scala code runner version 2.10.4 — Copyright 2002-2013, LAMP/EPFL

安装配置 Hadoop YARN
下载解压
从官网下载 hadoop2.6.0 版本,这里给个我们学校的镜像下载地址。

同样我们在~/workspace 中解压

tar -zxvf hadoop-2.6.0.tar.gz

配置 Hadoop
cd ~/workspace/hadoop-2.6.0/etc/hadoop 进入 hadoop 配置目录,需要配置有以下 7 个文件:hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml

在 hadoop-env.sh 中配置 JAVA_HOME

# The java implementation to use.
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75

在 yarn-env.sh 中配置 JAVA_HOME

# some Java parameters
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75

在 slaves 中配置 slave 节点的 ip 或者 host,

slave1
slave2

修改 core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000/</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/spark/workspace/hadoop-2.6.0/tmp</value>
    </property>
</configuration>

修改 hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/spark/workspace/hadoop-2.6.0/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/spark/workspace/hadoop-2.6.0/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

修改 mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改 yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

将配置好的 hadoop-2.6.0 文件夹分发给所有 slaves 吧

scp -r ~/workspace/hadoop-2.6.0 spark@slave1:~/workspace/

启动 Hadoop
在 master 上执行以下操作,就可以启动 hadoop 了。

cd ~/workspace/hadoop-2.6.0    #进入 hadoop 目录
bin/hadoop namenode -format    #格式化 namenode
sbin/start-dfs.sh              #启动 dfs
sbin/start-yarn.sh              #启动 yarn

验证 Hadoop 是否安装成功
可以通过 jps 命令查看各个节点启动的进程是否正常。在 master 上应该有以下几个进程:

$ jps  #run on master
3407 SecondaryNameNode
3218 NameNode
3552 ResourceManager
3910 Jps

在每个 slave 上应该有以下几个进程:

$ jps  #run on slaves
2072 NodeManager
2213 Jps
1962 DataNode

或者在浏览器中输入 http://master:8088,应该有 hadoop 的管理界面出来了,并能看到 slave1 和 slave2 节点。

Spark 安装
下载解压
进入官方下载地址下载最新版 Spark。我下载的是 spark-1.3.0-bin-hadoop2.4.tgz。

在~/workspace 目录下解压

tar -zxvf spark-1.3.0-bin-hadoop2.4.tgz
mv spark-1.3.0-bin-hadoop2.4 spark-1.3.0    #原来的文件名太长了,修改下

配置 Spark
cd ~/workspace/spark-1.3.0/conf    #进入 spark 配置目录
cp spark-env.sh.template spark-env.sh  #从配置模板复制
vi spark-env.sh    #添加配置内容

在 spark-env.sh 末尾添加以下内容(这是我的配置,你可以自行修改):

export SCALA_HOME=/home/spark/workspace/scala-2.10.4
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75
export HADOOP_HOME=/home/spark/workspace/hadoop-2.6.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/spark/workspace/spark-1.3.0
SPARK_DRIVER_MEMORY=1G

注:在设置 Worker 进程的 CPU 个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前 Worker 节点的硬件条件,Worker 进程会启动失败。

vi slaves 在 slaves 文件下填上 slave 主机名:

slave1
slave2

将配置好的 spark-1.3.0 文件夹分发给所有 slaves 吧

scp -r ~/workspace/spark-1.3.0 spark@slave1:~/workspace/

启动 Spark
sbin/start-all.sh

验证 Spark 是否��装成功
用 jps 检查,在 master 上应该有以下几个进程:

$ jps
7949 Jps
7328 SecondaryNameNode
7805 Master
7137 NameNode
7475 ResourceManager

在 slave 上应该有以下几个进程:

$jps
3132 DataNode
3759 Worker
3858 Jps
3231 NodeManager

进入 Spark 的 Web 管理页面:http://master:8080

Spark On YARN 集群安装部署

运行示例
# 本地模式两线程运行
./bin/run-example SparkPi 10 –master local[2]

#Spark Standalone 集群模式运行
./bin/spark-submit \
  –class org.apache.spark.examples.SparkPi \
  –master spark://master:7077 \
  lib/spark-examples-1.3.0-hadoop2.4.0.jar \
  100

#Spark on YARN 集群上 yarn-cluster 模式运行
./bin/spark-submit \
    –class org.apache.spark.examples.SparkPi \
    –master yarn-cluster \  # can also be `yarn-client`
    lib/spark-examples*.jar \
    10

注意 Spark on YARN 支持两种运行模式,分别为 yarn-cluster 和 yarn-client,从广义上讲,yarn-cluster 适用于生产环境;而 yarn-client 适用于交互和调试,也就是希望快速地看到 application 的输出。

更多 Spark 相关教程见以下内容

CentOS 7.0 下安装并配置 Spark  http://www.linuxidc.com/Linux/2015-08/122284.htm

Spark1.0.0 部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htm

CentOS 6.2(64 位)下安装 Spark0.8.0 详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark 简介及其在 Ubuntu 下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装 Spark 集群(在 CentOS 上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark 性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark 安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

Spark 的详细介绍:请点这里
Spark 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127003.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6978字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985355
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...