StandAlone模式的spark部署:
第一步:获取spark的安装包
1) **下载地址:**
1) 选择spark的发布版本 2.2.0
2) 选择支持的Hadoop版本支持2.7和以后
3) 上述两部选择好之后,会生成一个下载链接.点击下载链接即可.
如果我们在公司遇到这样一种情况,公司以前的大数据平台使用的Hadoop版本是2.3.0,Scala版本是2.10
现在呢,我想使用spark2.0,去官网一看,哎,没有符合的安装包
怎么办呢?没有别的办法,只能自己手动编译
1) 下载spark的source code
2) 根据官网的构建指导进行编译
1) maven的版本 3.3.9 or newer
2) jDk环境 1.8+
3) 执行一个脚本
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.3 -Phive -Phive-thriftserver -Pmesos -Pyarn
*执行脚本之后,等待编译成功即可.但是呢,一般第一次都不会成功的.遇到问题,稳住,不要慌,看清楚是什么问题,解决即可.最后一定可以成功的.*
第二步:spark开发环境的搭建和部署
目录规划
/opt/softwares/ 主要放置各种组件的安装包
/opt/modules/ 主要放置各种安装组件
/opt/datas/ 主要放置一些测试文件
/opt/jars/ 主要放置我们编写的应用程序达成的jar包
节点规划
spark-node01.alps.com Master Worker
spark-ndoe02.alps.com Worker
spark-node03.alps.com Worker
1) 将安装包上传至/opt/softwares/目录下
2) 将压缩包解压至/opt/modules/目录下
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/modules/
mv spark-2.2.0-bin-hadoop2.7/ spark-2.2.0
3) 对spark进行配置(spark-env.sh slaves)
spark-env.sh
conf目录下没有这个文件,需要将模板文件进行修改
mv spark-env.sh.tempalte spark-env.sh
配置参照 http://spark.apache.org/docs/2.2.0/spark-standalone.html
#配置Java环境
export JAVA_HOME=/opt/modules/jdk1.8.0_144
#配置SPark的Master的地址
export SPARK_MASTER_HOST=spark-node01.alps.com
export SPARK_MASTER_PORT=7077
slaves
conf/slaves.template,需要修改
mv slaves.tempalte slaves
spark-node01alps.com
spark-node02.alps.com
spark-node03.alps.com
4) 将节点1 的spark安装好的环境远程copy至节点2节点3
scp -r spark-2.2.0/ spark-node02.alps.com:$PWD
scp -r spark-2.2.0/ spark-node03.alps.com:$PWD
3) 验证spark开发环境是否成功
1) 启动spark集群
./sbin/start-all.sh
2) 查看是否启动成功
1) 使用jps命令
在节点1上要有一个Master进程和一个Worker进程,节点2上要有一个Worker进程,节点3上要有一个Worker进程
2) 访问spark集群的WEBUI界面
http://spark-nod01.alps.com:8080
spark高可用部署:
1) 我们搭建的Standalone模式的spark集群环境有什么问题?
我要知道一点,Standalone模式的spark集群是Master-slaves架构的,一般都有单点故障的问题
2) 针对这些问题我们有什么解决方案
如何解决单点故障的问题,很简单,启动两个Master,但是这两个Master有一个是主的,另外一个是备用的.
1) 基于zookeeper实现spark集群的高可用(生产环境下使用)
2) 基于文件系统的高可用部署(只能用来测试和试验),手动HA,MAster挂掉之后,会将状态信息保存起来.只需要再次启动Master即可.不推荐使用.
3) 基于zookeeper实现spark的高可用部署
1) 首先保证要有zookeeper集群,并启动
zkServer.sh start
2) 修改spark集群的配置文件
spark-env.sh
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=spark-node01.alps.com:2181,spark-node02.alps.com:2181,spark-node03.alps.com:2181
-Dspark.deploy.zookeeper.dir=/spark2"
3) 验证高可用
启动spark集群
./sbin/start-all.sh 只能启动一台Master,另外一台需要手动启动./sbin/start-master.sh
kill -9 pid
注意:状态的切换需要1~2分钟.