前言:本篇文章是学习spark的开篇,搭建一个spark的完全分布式集群,与大家共勉。
本次安装是之前的hadoop完全分布式集群的基础之上进行,相关软件版本如下:
Linux系统:CentOS release 6.5 final x86-64
Jdk:jdk1.7.0_71
hadoop: Yarn的hadoop2.4.1
scala:scala-2.10.4
spark:spark-1.3.0-bin-hadoop2.4
其中,scala存放在/home/dev/toochain目录下;spark存放在/home/dev/platforms目录下。
Spark所用的节点和hadoop集群的节点一样,示意图如下:
详细步骤:
一、此处省略jdk和hadoop的安装。
具体过程可参考鄙人之前的博客:http://blog.csdn.net/bu_min/article/details/45243025
二、安装Scala和Spark
在master节点上完成以下操作:
1、 修改~/.hadoop文件配置环境变量,添加以内容:
export SCALA_HOME=/home/dev/toochain/scala-2.10.4
exportSPARK_HOME=/home/dev/paltforms/spark-1.3.0-bin-hadoop2.4
export PATH=$PATH:$ SCALA_HOME/bin:$ SPARK_HOME/bin
完成后source ~/.bashrc 使其生效
2、 修改spark-env.sh
[dev@quad201 ~]$ cd /home/dev/platforms/ spark-1.3.0-bin-hadoop.4/conf
[dev@quad201 conf]$ cp spark-env.sh.template spark-env.sh
[dev@quad201 conf]$ vim spark-env.sh
添加以下内容:
export SCALA_HOME=/home/dev/toolchain/scala-2.10.4
export JAVA_HOME=/home/dev/toolchain/jdk1.7.0_71
export SPARK_MASTER_IP=172.20.36.244
export SPARK_WORKER_INSTANCE=3
export SPARK_MASTER_PORT=8070
export SPARK_MASTER_WEBUI_PORT=8090
export SPARK_WORKER_PORT=8092
export SPARK_WORKER_MEMORY=5000m
3、 添加slaves节点:
[dev@quad201 conf]$ cp slaves.template slaves
[dev@quad201 conf]$ vim slaves
添加worker主机的ip,如下:
192.168.2.2
192.168.2.3
192.168.2.4
4、 修改相关目录权限,否则spark集群无法启动:
修改$SPARK_HOME的权限,赋予其他用户读写权限chmod 777 $SPARK_HOME
修改$SPARK_HOME下logs和data目录的权限,赋予其他用户读写权限:
[dev@quad201 spark-1.3.0-bin-hadoop .4]$ chmod 777 $SPARK_HOME/logs
[dev@quad201 spark-1.3.0-bin-hadoop .4]$ chmod 777 $SPARK_HOME/data
5、 将dev主目录下的.hadoop文件拷到主节点的hadoop用户主目录下,并使其生效。
6、 分别在3个slaves节点完成完全相同的以上5个步骤,文件路径要相完全同,相关文件夹权限要相同,环境变量配置也要完全相同。(用scp命令)
三、完成以上配置以后,启动spark集群。在quad201上切换到hadoop用户
1、[hadoop@quad201 ~]$ $SPARK_HOME/sbin/start-all.sh
若有报错信息,请查看相关log,然后做出修改后,可以单独启动进程:
在Master上:[hadoop@quad201 ~]$ $SPARK_HOME/sbin/start-master.sh
在Worker上:[hadoop@quad201 ~]$ $SPARK_HOME/sbin/start-slave.sh3 spark://172.20.36.244:8070 –webui-port 8090
然后运行jps命令,检查进程启动情况,若看到主节点上看到Master进程,从节点上看到Worker进程,说明spark集群启动成功。
2、浏览器打开:172.20.36.244:8090可以看到所有Worker节点信息,包括内存和cpu个数等,如下图所示: