spark HA集群的分布式安装

一:安装教程

   修改配置文件

  (1)spark.env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
export SPARK_WORKER_MEMORY=500m
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER 
                -Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181,hadoop3:2181,hadoop4:2181
                -Dspark.deploy.zookeeper.dir=/spark
"

    配置参数说明:

  -Dspark.deploy.recoveryMode=ZOOKEEPER    #说明整个集群状态是通过zookeeper来维护的,整个集群状态的恢复也是通过zookeeper来维护的。就是说用zookeeper做了spark的HA配置,Master(Active)挂掉            的话,Master(standby)要想变成Master(Active)的话,Master(Standby)就要像zookeeper读取整个集群状态信息,然后进行恢复所有Worker和Driver的状态信息,和所有的Application状态信息; 
  -Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181,hadoop3:2181,hadoop4:2181#将所有配置了zookeeper,并且在这台机器上有可能做master(Active)的机器都配置进来;(我用了4台,就配置了4                  台) 

  -Dspark.deploy.zookeeper.dir=/spark 
          这里的dir和zookeeper配置文件zoo.cfg中的dataDir的区别??? 
  -Dspark.deploy.zookeeper.dir是保存spark的元数据,保存了spark的作业运行状态; 
  zookeeper会保存spark集群的所有的状态信息,包括所有的Workers信息,所有的Applactions信息,所有的Driver信息,如果集群 

(2)slaves,添加集群的hostName

hadoop1
hadoop2
hadoop3

(3)环境变量的配置

export SPARK_HOME=/home/hadoop/apps/spark
export PATH=$PATH:$SPARK_HOME/bin

是环境变量的内容生效:source /etc/profile

二:启动顺序

1 启动zookeeper,每个节点都需要启动。  

zkServer.sh start

2 启动hdfs,任意一个节点

start-dfs.sh

3 启动spark集群,任意一个节点

start-all.sh

4 启动master进程

start-master.sh 

5 检查

 jps 和 URL:hadoop1:8080

6 杀死Master进程,或有新的master进程生成

三:在yarn之上执行spark程序

 spark shell

./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

启动在yarn上的前提:成功启动zookeeper集群、HDFS集群、YARN集群

运行在yarn上的spark shell

复制代码
export HADOOP_CONF_DIR=XXX
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --deploy-mode cluster \  # can be client for client mode
  --executor-memory 20G \
  --num-executors 50 \
  /path/to/examples.jar \
  1000
复制代码

 

参考文献:扎心了,老铁

   spark官方文档

 

posted @   上海小墨子  阅读(205)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示