spark学习笔记四:spark集群搭建

安装包编译

spark官网已经针对hadoop的2.4+版本、2.3版本、1.x版本等提供了编译好的安装包。在某些情况下,需要自己编译spark。用maven编译的方法是:

1.      安装好maven,下载和解压源码

2.      设置环境变量

在linux下运行:

export MAVEN_OPTS="-Xmx2g-XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

不这么做的话,编译过程中maven会报PermGen space不够的异常

3.      使用脚本编译

直接使用源代码包中的make-distribution.sh脚本可以完成编译、打包工作,建议直接使用这个脚本,运行命令如下:

./make-distribution.sh --tgz-Phadoop-2.2 -Pyarn -DskipTests -Dhadoop.version=2.2.0 –Phive

         --tgz指明要打成tar.gz包、-P选项是针对Maven的pom.xml激活其profile配置、-D选项是针对Maven的pom.xml设置property。各个profile和property的设置,可以查看pom.xml进一步了解其意义。

4.      经过以上步骤,应该就能正常编译,并打包成一个.tar.gz的安装包。

 

集群搭建

Spark集群的组织形式有三种:

1.      Standalone:使用akka作为网络IO组件,master和worker之间采用actor模型进行组织。简单说就是spark自己实现了集群中的各个节点上的服务。

2.      Yarn:直接使用Yarn框架完成资源分配和分布式管理功能,spark只是简单地把任务提交给yarn框架。

3.      Mesos:没用过。

我使用Standalone的模式来搭建集群,手上有三台服务器,预计的分布如下:

Server1:   master+ worker

Server2:   worker

Server3:   worker

操作过程如下:

1.      在三台服务器之间建立信任关系,因为spark需要信任关系来启动各个worker。

2.      在三台服务上安装scala。

3.      将安装压缩包解压到Server1的/home/work/spark/目录下。

4.      配置conf/ spark-env.sh为以下内容:

curdir=`dirname $0`

cd $curdir

curdir=`pwd`

cd -

 

export SCALA_HOME=$curdir/../../scala

export SPARK_WORKER_MEMORY=16g

export SPARK_MASTER_IP=10.208.63.43

export MASTER=spark://10.208.63.43:7077

其中10.208.63.43是Master服务所在服务器Server1的IP。

5.      配置conf/ slavae为以下内容:

Server1

Server2

Server3

         Slave文件不配置也可以,如果不配置,那就需要自己手动去启动各个worker。

6.      在server1上使用rsync命令把安装包同步到其他两台服务器上:

rsync -avspark Server2:/home/work/

rsync -avspark Server3:/home/work/

7.      在Server1中使用./sbin/start-all.sh来启动集群。

8.      观察各个服务的日志是否成功启动。

 

你可能感兴趣的:(spark,spark)