安装包编译 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学习笔记四(spark集群搭建)】
推荐阅读
- #|Spark-RDD的依赖关系
- 大数据|15道经典大数据面试题
- spark|Spark中RDD的依赖关系
- Spark|spark rdd分区与任务的关系
- 项目|大数据实战之离线数仓整体规划
- #|hive 表数据导出到CSV文件
- hive|Spark读取csv文件,清洗后存入Hive库中
- 大数据|spark sql 创建rdd以及DataFrame和DataSet互转