@羲凡——只为了更好的活着
Spark2.0 HA安装(spark on yarn 模式)——Spark2.3.2
spark主要有四种运行模式local(本地运行)、standalone(Spark自带的资源管理框架)、yarn(将spark应用类似mr一样,提交到yarn上运行)、mesos(类似yarn的一种资源管理框架),其对应的安装方法各不相同,本文主要介绍spark on yarn的安装。前提是默认你已经安装了hadoop HA,版本2.6.5以上(博主使用2.7.3)。spark2.0的版本安装都与此类似,此文中选择Spark2.3.2作为示范!
一、下载对应的安装包
1.下载scala
官网要求scala使用2.11的版本 For the Scala API, Spark 2.3.2 uses Scala 2.11. You will need to use a compatible Scala version (2.11.x)。博主使用的是scala 2.11.12版本
下载地址如下:
https://www.scala-lang.org/download/2.11.12.html
翻到下面(如下图),选择第一个下载
2.下载spark
下载地址如下:
http://spark.apache.org/downloads.html
在 Choose a Spark release 中选择自己的版本2.3.2
在 Choose a package type 中选择2.7 and later
点击 Download Spark 后面的tgz文件下载即可
二、安装
1.安装scala
a.解压到当前目录下(在 /usr/local/package 目录下安装scala)
tar -zxf scala-2.11.12.tgz -C ./
b.进入/etc/profile目录添加 SCALA_HOME,重新加载/etc/profile文件
sudo vi /etc/profile
#SCALA_HOME
export SCALA_HOME=/usr/local/package/scala-2.11.12
export PATH=$PATH:$SCALA_HOME/bin
source /etc/profile //重新加载/etc/profile文件
c.检验scala是否安装成功
scala -version //在任何目录下输入
如果出现 Scala code runner version 2.11.12 – Copyright 2002-2017, LAMP/EPFL,表示 scala 安装成功
2.安装spark
a.解压到当前目录下(在 /usr/local/package 目录下安装scala)
tar -zxf spark-2.3.2-bin-hadoop2.7.tgz -C ./
b.进入/etc/profile目录添加 SPARK_HOME,并重新加载/etc/profile文件
sudo vi /etc/profile
#SPARK_HOME
export SPARK_HOME=/usr/local/package/spark-2.3.2-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile //重新加载/etc/profile文件
c.进入$SPARK_HOME/conf,修改配置文件
cd $SPARK_HOME/conf
//重命两个文件
mv spark-env.sh.template spark-env.sh
mv spark-defaults.conf.template spark-defaults.conf
//vi 进入spark-env.sh 在文件最下方添加如下内容
JAVA_HOME=/usr/local/package/jdk1.8.0_131
SCALA_HOME=/usr/local/package/scala-2.11.12
HADOOP_CONF_DIR=/usr/local/package/hadoop-2.7.3/etc/hadoop
HADOOP_HOME=/usr/local/package/hadoop-2.7.3
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=TS-DEP61:2181,TS-DEP62:2181,TS-DEP63:2181,TS-DEP64:2181,TS-DEP65:2181 -Dspark.deploy.zookeeper.dir=/spark"
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=/spark/history -Dspark.history.ui.port=18080"
//vi 进入spark-defaults.conf 在文件最下方添加如下内容
spark.eventLog.enabled true
spark.eventLog.dir /spark/history
spark.yarn.historyServer.address http://TS-DEP60:18080
上面参数的地址最好提前创建好,至少创建 /spark 目录
hdfs dfs -mkdir /spark //在任何目录下输入
解释说明:
spark.deploy.zookeeper.url参数是你的zk集群信息
spark.deploy.zookeeper.dir参数是zk记录spark的地址
spark.history.fs.logDirectory参数是spark历史任务记录的存放路径
spark.history.ui.port参数是查看spark历史任务记录的web端口
d.检验spark-shell是否安装成功
spark-shell //在任何目录下输入
如果出现如下截图,则表示spark-shell安装成功
e.如果要运行spark-sql 这需要将hive的配置文件 hive-site.xml 拷贝到$SPARK_HOME的conf目录下。
spark-sql //在任何目录下输入
如果出现如下截图,则表示spark-sql安装成功
三、分发和启动
1.分发
将配置好的spark-2.3.2-bin-hadoop2.7安装包scp到每台datanode机器,设置spark.yarn.historyServer.address的那一台机器上(博主在TS-DEP60上设置)必须要有此安装包
scp -r spark-2.3.2-bin-hadoop2.7 TS-DEP60:/usr/local/package/
2.启动
a.启动前先检查hadoop中 yarn-site.xml 的配置中是否设置了 yarn.log-aggregation-enable 和 yarn.log.server.url 。如果没有,请添加下面两个配置
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://TS-DEP60:19888/jobhistory/logs</value>
</property>
b.在TS-DEP60机器上配置好SPARK_HOME后,在任意目录下输入如下命令,启动spark历史服务
start-history-server.sh
总结重点
1.配置spark HA 必须设置好zk集群的相关设置spark.deploy.zookeeper.url 和spark.deploy.zookeeper.dir
2.必须开启在设置spark.yarn.historyServer.address 的机器上开启Spark Job History服务
3.为了配置sparksql需要将hive 的hive-site.xml文件拷贝到 $SPARK_HOME/conf 目录下
若对博客中有任何问题,欢迎留言交流
恭喜您已经完成spark on yarn 的HA模式的安装
恭喜您已经完成spark on yarn 的HA模式的安装
恭喜您已经完成spark on yarn 的HA模式的安装
@羲凡——只为了更好的活着