准备工作
- 安装SSH Server、配置集群节点间的相互SSH无密码登录
- Linux(CentOS6.4)下Hadoop单机/集群的安装和配置
注意:如果需要在Spark集群时,使用hadoop yarn的方式提交任务,则需要在集群中配置完成hadoop(yarn方式),详情见:CentOS6.4环境下Hadoop单机+集群的安装和配置中集群部分。
Spark集群配置环境
- Linux主机两台(CentOS6.4 32bit):Master(hostname:master, ip:192.168.15.129),Slave(hostname: slave, ip:192.168.15.139)
- Scala版本:scala-2.10.6
- Hadoop版本:hadoop-2.6.4
- Spark版本:spark-1.6.2-hadoop-2.6.4
- Java JDK:1.8
安装目录:
- Java JDK:/usr/java/jdk1.8.0_144
- Scala:/usr/scala/scala-2.10.6
- Hadoop:/usr/hadoop/hadoop-2.6.4
- Spark:/usr/spark/spark-1.6.2-bin-hadoop2.6
说明:具体JDK,Scala,Spark安装见:CentOS环境下搭建Spark运行环境,Hadoop集群搭建见:CentOS6.4环境下Hadoop单机+集群的安装和配置。
修改Spark配置文件
配置步骤:同样是先在Master主机中完成对Spark的配置文件的修改,在将spark文件夹发至各个slave中(注意,Spark的安装目录,需要Master和各个slave主机保持一致,这里Master中spark的安装目录为/usr/spark/spark-1.6.2-bin-hadoop2.6)
在配置Spark集群时,需要修改的配置文件:
- /usr/spark/spark-1.6.2-bin-hadoop2.6/conf/slaves
- /usr/spark/spark-1.6.2-bin-hadoop2.6/conf/spark-env.sh
上述的两个配置文件,在spark中有相应的模板文件,需要复制成相应的配置文件,具体如下。
工作目录:spark安装目录(/usr/spark/spark-1.6.2-bin-hadoop2.6/)
工作用户:hadoop
1. slaves文件
将模板文件(slaves.template)复制为需要的配置文件(slaves)
cp ./conf/slaves.template ./conf/slaves
编辑slaves文件内容,添加slave的主机名称(hostname):
2. spark-env.sh文件
将模板文件(spark-env.sh.template)复制为需要的配置文件(spark-env.sh)
cp ./conf/spark-env.sh.tempalte ./conf/spark-env.sh
编辑spark-env.sh文件内容:
说明:这里配置spark集群可以使用hadoop yarn集群管理器模式的设置,
配置文件内容:
说明:这里在对spark-env.sh配置文件中的参数进行设置时,进行了一些测试,具体见:[Spark] conf/spark-env.sh文件的配置对Spark集群的影响
3. 将上述配置完成的master主机中的/usr/spark安装目录,打包并发送至slave主机中:
cd /usr
tar -zcf ./spark.tar.gz ./spark
scp ./spark.tar.gz slave:/home/hadoop/tmp
4. 在slave主机中对压缩文件进行解压至/usr目录下(slave主机中的spark安装目录同master主机保持一致):
tar -zxf /home/hadoop/tmp/spark.tar.gz -C /usr
chown -R hadoop:hadoop /usr/spark
以上完成了spark集群中的配置文件的设置,下面启动spark集群。
启动spark集群和hadoop集群
1. 启动spark集群
cd /usr/spark/spark-1.6.2-bin-hadoop2.6
sbin/start-all.sh
2. 使用jps命令验证Spark是否启动成功:
在未启动hadoop集群的master节点中:
在未启动hadoop集群的slave节点中:
注意:在未启动hadoop集群的情况下,启动spark集群不会自动启动hadoop集群,两个分布式计算平台本身就可以相互独立的运行。但当spark集群单独运行时,可以使用spark的local(单机)和standlone(spark独立集群管理器模式)两种模式进行spark-submit任务的提交,无法使用Hadoop YARN集群管理模式。当需要使用yarn集群管理器对集群进行管理时,则spark集群必须依赖于hadoop集群的运行。
下面继续启动已经配置完成的hadoop集群,如下。
3. 同时启动spark和hadoop集群时的运行情况:
在master主机中开启hadoop集群命令:
/usr/hadoop/hadoop-2.6.4/sbin/start-dfs.sh
/usr/hadoop/hadoop-2.6.4/sbin/start-yarn.sh
在启动hadoop集群的master节点中:
在启动hadoop集群的slave节点中:
注意:在配置完成spark和hadoop集群配置到目前为止,则可以使用yarn集群管理器下的spark-submit命令提交spark任务,并运行。
4. 通过浏览器查看Spark集群配置情况:
进入Spark的Web管理页面: http://master:8080
5. 关闭集群
在master主机上,使用如下命令关闭spark集群:
hadoop集群的管理命令如下:
cd /usr/hadoop/hadoop-2.6.4
sbin/stop-dfs.sh
sbin/stop-yarn.sh
至此,hadoop和spark集群配置完成!!!该系列内容均为原创文章,未经允许不得转载,转载请注明来源!!!