spark ha讲解与配置

spark standalone集群是Master-Slaves架构的集群模式,和大部分的Master-slaves架构集群一样,存在Master单点故障问题,spark提供了两种解决
方案:
1、基于文件系统的单恢复
基于文件系统的单点恢复,主要是在spark-env里对SPARK_DAEMON_JAVA_OPTS设置
spark.deploy.recoveryMode : 设置成FILESYSTEM,缺省NONE
spark.deploy.recoveryDirectory : spark保存恢复状态的目录
如下配置:
#export SPARK_MASTER_IP=master-active
#export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/nfs/spark/recovery"

2、基于Zookeeper的standby masters
用于生产模式,其基本原理是通过zookeeper来选举一个Master,其他的Master处于Standby状态
spark.deploy.recoveryMode  : 设置成ZOOKEEPER,缺省NONE
spark.deploy.zookeeper.url : The ZooKeeper cluster url (e.g., 192.168.1.100:2181,192.168.1.101:2181).
spark.deploy.zookeeper.dir : The directory in ZooKeeper to store recovery state (default: /spark).

注意:注意:不能将Master定义在conf/spark-env.sh里了,而是直接在Application中定义。涉及的参数是 export SPARK_MASTER_IP=bigdata001,这项不配置或者为空。否则,无法启动多个master。

如下配置:
#export SPARK_MASTER_IP=master-active
#export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata001:2181,bigdata002:2181,bigdata003:2181 -Dspark.deploy.zookeeper.dir=/spark"

你可能感兴趣的:(spark,集群,架构,解决方案)