Spark集群环境搭建

阅读次数:1    时间:2018-09-11     作者:贺圣军

现在在大数据的生态圈的离线的处理主要使用的是MapReduce和Hive技术,但是对于实时处理分析,越来越多的企业使用的Spark作为企业的内存处理计算框架,相对于MapReduce,Spark主要有以下一些特点:

  • Spark基于内存运算要比MapReduce块100倍,基于HDFS也要快10倍以上
  • Spark简单易用,有相对成熟的API,支持使用Scala,Python和Java的API
  • Spark提供了统一的解决方案,Spark可以用于批处理,交互式查询,实时处理,机器学习和图计算
  • 兼容性好,Spark可以运行在standalone,YARM,Mesos等资源调度管理框架

接下来我们来搭建一个Spark的集群模式,本教程讲搭建Spark2.3的版本,其中依赖的相关配置如下

  • 操作系统:CentOS Linux release 7.5.1804 (Core)
  • jdk使用 1.8.0_171
  • hadoop版本使用 hadoop-2.9.1(使用HDFS文件系统)
  • 注册中心使用zookeeper-3.4.12

安装好上述相关软件,我们来时我们的Spark集群规划

主从节点 lab201 lab202 lab203
Master节点
Worker节点
[root@lab201 soft]# pwd
/root/soft
[root@lab201 soft]# ls |grep sp
spark-2.3.1-bin-hadoop2.7.tgz
  • 解压文件到指定的安装目录
[root@lab201 soft]# tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz -C ~/apps/
[root@lab201 apps]# pwd
/root/apps
[root@lab201 apps]# ls
hadoop-2.9.1  hive-1.2.2  jdk1.8  maven-3.5.4  spark-2.3.1-bin-hadoop2.7  zookeeper-3.4.12
  • 使用scp命令分别拷贝到另外两台主机
[root@lab201 apps]# scp -r spark-2.3.1-bin-hadoop2.7/ lab202:$PWD
[root@lab201 apps]# scp -r spark-2.3.1-bin-hadoop2.7/ lab203:$PWD
  • 拷贝完成以后开始修改对应的配置文件

spark-env.sh:主要配置JAVA_HOME,是spark程序的启动配置文件

[root@lab201 conf]# mv spark-env.sh.template  spark-env.sh
[root@lab201 conf]# vi spark-env.sh
#配置java的运行环境
JAVA_HOME=/root/apps/jdk1.8
#配置Master节点使用ZKserver进行注册管理,避免单节点故障
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=lab201:2181-Dspark.deploy.zookeeper.dir=/spark"
#配置HADOOP环境的配置目录,根据HADOOP的客户端配置决定默认是读取HDFS还是本地file:///
HADOOP_CONF_DIR=/root/apps/hadoop-2.9.1/etc/hadoop
  • slaves: 主要配置从节点Worker的地址
[root@lab201 conf]# mv slaves.template slaves
[root@lab201 conf]# vi slaves
lab201
lab202
lab203
  • 把修改的配置文件拷贝到另外两台主机
[root@lab201 conf]# scp slaves spark-env.sh  lab202:$PWD
[root@lab201 conf]# scp slaves spark-env.sh  lab203:$PWD
  • 启动master节点和worker节点

    在lab201执行 sbin/start-all.sh

[root@lab201 spark-2.3.1-bin-hadoop2.7]# pwd
/root/apps/spark-2.3.1-bin-hadoop2.7
[root@lab201 spark-2.3.1-bin-hadoop2.7]# sbin/start-all.sh
  • 在lab202 单独启动marster集群
[root@lab202 spark-2.3.1-bin-hadoop2.7]# sbin/start-master.sh
  • 通过jps检查进程是否正常启动

    lab201

[root@lab201 spark-2.3.1-bin-hadoop2.7]# jps
2517 Jps
2455 Worker
1496 QuorumPeerMain
2348 Master
lab202
[root@lab202 spark-2.3.1-bin-hadoop2.7]# jps
1552 QuorumPeerMain
2409 Jps
2253 Worker
2334 Master
lab203
[root@lab203 bin]# jps
2195 Jps
2137 Worker
1550 QuorumPeerMain

如果都有上面的Master和Worker进程说明启动成功

好了,关于Spark的集群环境搭建基本上已经完成. 我们就可以开始Spark框架的学习了。