美文网首页
垦荒记|Spark集群搭建

垦荒记|Spark集群搭建

作者: 翱翔云端 | 来源:发表于2018-02-06 15:34 被阅读0次
Spark架构图
Spark对大数据计算进行了一次伟大的革命,它的风格是独立自主,力争全能,连集群管理器都自己开发,Standalone就是Spark自己的集群管理器。
Spark把可以做的都做了,因此搭建集群也简单了不少,比Storm还要简单。搭Storm集群至少需要个Zookeeper,搭Spark集群可以不需要任何第三方的东西,它自己全部有!
我用Spark做什么?做大数据批处理。你可能会说用Hadoop的Map/Reduce不就行了,这东西就像C语言的指针,关于他的弊端,我已经在大数据计算的四支精干队伍,你造吗一文讨论过了,此处不赘述。虽然我不用Map/Reduce,但是我需要Hadoop的HDFS来存数据。为提高数据访问效率,把Spark的Master节点和Hadoop的SecondaryNameNode节点放在一起,把Spark的Worker节点和Hadoop的DataNode节点放一起。这样的安排是基于自己的数据访问场景,并不是必须的。

搭建Spark集群

host 168 170 172 175
HDFS SecondaryNameNode DataNode DataNode NameNode
Spark Master Worker Worker Worker

1.准备工作
(1)主机规划。基本规划如表所示,根据自己的需求来,可以加Worker节点。
(2)官网下载Spark稳定版。本文使用spark-2.1.1-bin-hadoop2.6.tgz。
(3)新增spark用户,方便对Spark进行管理。

# 新增spark用户
# useradd spark
#设置spark用户密码
# passwd spark
#根据提示输入密码即可,直接输入,光标是不会动的

(4)SSH免密码登录。
注销root,使用spark用户登录,设置Master节点到各Worker节点的SSH免密码登录。

#工作目录
$ pwd
$ /home/spark
# 各机器上执行,生成RSA密钥
$ ssh-keygen -t rsa -P ''

#设置master到自己的免密码登录
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ chmod 755 .ssh
$ chmod 755 .ssh/authorized_keys
#测试
$ ssh x.x.x.168
$ exit

#将master节点的RSA公钥给各worker节点
$ scp .ssh/authorized_keys spark@x.x.x.170:/home/spark/id_rsa.pub
$ scp .ssh/authorized_keys spark@x.x.x.172:/home/spark/id_rsa.pub
$ scp .ssh/authorized_keys spark@x.x.x.175:/home/spark/id_rsa.pub

#各worker节点spark家目录下执行
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 755 .ssh
$ chmod 755 .ssh/authorized_keys

#测试168到175免密码登录
$ ssh x.x.x.175
$ exit

(5)将下载的spark压缩包上传各节点spark家目录下。
2.集群配置。

#解压
$ tar -zxvf spark-2.1.1-bin-hadoop2.6.tgz
#进入配置文件目录
$  cd spark-2.1.1-bin-hadoop2.6/conf/
#配置文件列表
$ ll

#配置master节点地址
$ cp spark-defaults.conf.template spark-defaults.conf
$ vi spark-defaults.conf
#文件末尾加上
spark.master                     spark://{master_host}:7077
#保存

#配置worker节点地址
$ cp slaves.template slaves
$ vi slaves
#文件末尾加上各worker地址即可

#配置spark-env
$mkdir /home/spark/data /home/spark/work
$ cp spark-env.sh.template spark-env.sh
$ vi spark-env.sh
#文件末尾加上
export SPARK_MASTER_IP=x.x.x.168
export SPARK_MASTER_PORT=7077
export SPARK_LOCAL_DIRS=/home/spark/data
export SPARK_WORKER_DIR=/home/spark/work
export JAVA_HOME=/usr/java/jdk1.8.0_121
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=60 -Dspark.worker.cleanup.appDataTtl=300"
#赋予脚本执行权限
$ chmod 755 spark-env.sh

#可以根据自己的需要配置下log4j[可选]

#为方便,将spark的可执行脚本加到spark用户环境变量中[可选]
$ vi ~/.bash_progile
#文件末尾加上
export SPARK_HOME=/home/spark/spark-2.1.1-bin-hadoop2.6
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

以上配置每个节点都要配置,对于conf下的配置,建议配置好一个节点后,直接copy配置文件到其他节点即可。
3.启动集群。

#启动spark集群,master节点上执行
$ start-all.sh

看看日志,再到各节点jps看看spark守护进程是否启动。
正常的话,可以访问Spark UI了,http://{master_host}:8080,祝好运!

相关文章

网友评论

      本文标题:垦荒记|Spark集群搭建

      本文链接:https://www.haomeiwen.com/subject/lhjgzxtx.html