Spark集群安装部署

介绍

Spark部署由三种模式,本地集群(Standalone Cluster)、YARN、Mesos模式。本篇文章只介绍前两种环境搭建,Mesos没有使用经验。
Standalone:不依赖外部环境,只需要Spark环境即可运行
YARN:需要依赖Hadoop环境

环境准备

JDK8
Scala2.11.x
Zookeeper(Standalone HA高可用)
Spark安装包spark-2.1.1-bin-hadoop2.7.tgz下载
官方所有版本下载地址
三台物理节点

安装Scala

1、下载安装包
Scala2.12.2官方下载地址
2、解压

tar zxf scala-2.12.2.tgz

3、配置环境变量,修改/etc/profile文件

export SCALA_HOME=/home/hadmin/scala-2.12.2
export PATH=$SCALA_HOME/bin
//使配置生效
source /etc/profile

Standalone集群(HA)

部署本地集群高可用模式,在三台节点分布

节点 服务
node1 master、slave、zookeeper
node2 master、slave、zookeeper
node3 slave、zookeeper
1、解压安装包
tar zxf spark-2.1.1-bin-hadoop2.7.tgz

2、重命名这三个配置文件

mv spark-env.sh.templete spark-env.sh
mv spark-defaults.conf.templete spark-default.conf
mv slaves.templete slaves

3、修改spark-env.sh

SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=10002
SPARK_LOG_DIR=/home/hadmin/soark/logs
SPARK_WORKER_MEMORY=4G
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=salve1:2181,salve:2181,salve:2181 -Dspark.deploy.zookeeper.dir=/spark"

4、修改slaves

salve1
salve2
salve3

5、配置环境变量,将整个spark目录拷贝到另外两台节点

export SPARK_HOME=/home/hadmin/spark
export PATH=$PATH:$SPARK_HOME/sbin:$SPARK_HOME/bin
//使配置生效
source /etc/profile

6、启动master,在node1和node2运行

start-master.sh

7、启动slave,需指定master地址,在三台节点运行

start-slave.sh spark://salve1:7077

8、查看WEBUI监控界面,在浏览器输入地址http://salve1:10002

开启HistoryServer

HistoryServer提供历史作业日志查看功能,开启需要修改相关配置
1、修改spark-defaults.conf

注意:spark.eventLog.dir参数可设置HDFS地址,目录需手动创建

spark.eventLog.enabled  true
spark.eventLog.dir       hdfs://ns/spark_history_log
spark.eventLog.compress true

2、修改spark-env.sh

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=5 -Dspark.history.fs.logDirectory=hdfs://ns/spark_history_log"

3、启动服务

start-history-server.sh

更多相关参数配置请参考官方网址: 官网参数配置

SPARK ON YARN

YARN模式只需要安装一个节点即可,因为Spark相对于YARN来说,只是以Client模式提交作业到YARN上执行。
1、解压安装包

tar zxf spark-2.1.1-bin-hadoop2.7.tgz

2、修改spark-env.sh

HADOOP_CONF_DIR=/home/hadmin/hadoop-2.7.4/etc/hadoop

3、修改spark-defaults.conf

//将spark依赖上传到HDFS,保证每个节点可直接访问依赖
spark.yarn.archive=hdfs:///spark/libs/spark-libs.jar

4、将spark依赖包上传到HDFS目录
方式一,将所有依赖包打成一个archive jar包,上传到hdfs:

//创建archive jar包
jar cv0f spark-libs.jar -C $SPARK_HOME/jars/* 
//上传到hdfs
hdfs dfs -put spark-libs.jar /spark/libs/
// 

方式二,直接将所有依赖包上传到hdfs:

hdfs dfs -put jars/* /spark/libs/
//在spark-defaults.conf中修改参数
spark.yarn.jars=hdfs:///spark/libs/*.jar

更多相关参数配置请参考官网: 官网相关参数配置

开启Shuffle Service

YARN模式下开启Spark Shuflle Service,External Shuffle Service运行在NodeManager上独立的进程,只管理Shuffle过程数据传输,减轻Executor的负担。
1、把spark目录下spark-2.1.1-yarn-shuffle.jar添加到Hadoop的ClassPath中

cp $SPARK_HOME/yarn/spark-2.1.1-yarn-shuffle.jar $HADOOP_HOME/share/hadoop/yarn/lib/

2、修改yarn-site.xml

注意:yarn.log.server.url是为了查看历史日志配置的。Spark的Job HistoryServer和Hadoop的Job HistoryServer共同运行,查看Spark历史日志时通过这个参数跳转到Hadoop的历史日志。
Spark集群安装部署_第1张图片

<property>
    <name>yarn.log.server.urlname>
    <value>tod1:19888/jobhistory/logs/value>
property>
<property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shuffle, spark_shufflevalue>
property>
<property>
    <name>yarn.nodemanager.aux-services.spark_shuffle.classname>
    <value>org.apache.spark.network.yarn.YarnShuffleServicevalue>
property>

3、重启所有NodeManager
更多相关配置参数请参考官网: 官方参数配置

水平一般,能力有限,大数据小学生一枚。文章主要用于个人学习和总结,如果能给他人带来帮助,纯属意外。

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