大数据开发环境搭建之Spark集群搭建
需要四台机器
1.集群规划:
Spark没有对内存进行管理,内存的管理交给应用程序管理,容易出现:OOM(内存溢出)
Worker的默认行为:占用该节点上的所有资源
Master节点:bigdata02
Worker节点:bigdata03、bigdata04、bigdata05
2.上传Spark安装包到bigdata02并解压.
cd /home/bigdata/soft/
tar -zxvf spark-2.1.0-bin-hadoop2.7.gz -C /home/bigdata/apps
3.改名并配置spark-env.sh文件
cd /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/conf/
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
文件最后添加如下三个配置:
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
export SPARK_MASTER_HOST=bigdata02
export SPARK_MASTER_PORT=7077
4.改名并配置slaves文件
cp slaves.template slaves
vim slaves
里面加上bigdata03、bigdata04、bigdata05的主机名
# A Spark Worker will be started on each of the machines listed below.
bigdata03
bigdata04
bigdata05
5.把安装好的主节点的Spark,复制到两个从节点去.
scp -r ~/apps/spark-2.1.0-bin-hadoop2.7/ bigdata03:~/apps/
scp -r ~/apps/spark-2.1.0-bin-hadoop2.7/ bigdata04:~/apps/
scp -r ~/apps/spark-2.1.0-bin-hadoop2.7/ bigdata05:~/apps/
6.配置完成,在主节点上启动.
cd /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/
sbin/start-all.sh
7.在网页上观察.
实现Spark集群的HA
1.修改配置文件spark-env.sh(增加参数),四台机器都要修改.
cd /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/conf/
vim spark-env.sh
都要增加一行参数
配置参数 | 参考值 |
---|---|
spark.deploy.recoveryMode | 设置为ZOOKEEPER开启单点恢复功能,默认值:NONE |
spark.deploy.zookeeper.url | ZooKeeper集群的地址 |
spark.deploy.zookeeper.dir | Spark信息在ZK中的保存目录,默认:/spark |
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata02:2181,bigdata03:2181,bigdata04:2181,bigdata05:2181 -Dspark.deploy.zookeeper.dir=/spark"
2.以下两行参数注释掉,因为主节点信息现在有ZooKeeper维护,不需要Master.
#export SPARK_MASTER_HOST=bigdata02
#export SPARK_MASTER_PORT=7077
3.在bigdata02上启动Spark
cd /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/
sbin/start-all.sh
4.在bigdata03上单独启动一个Master
cd /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/
sbin/start-all.sh