Spark HA(高可用)集群的搭建

1.上传并且解压spark安装包

2.将解压出来的目录重命名为spark

3.进入spark/conf修改配置文件

    1.进入conf目录并且复制spark-env.sh.template并重命名为spark-env.sh,并在文件最后添加如下配置内容

cp spark-env.sh.template spark-env.sh
vi spark-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_191
export SCALA_HOME=/home/hadoop/apps/scala-2.11.8
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.6/etc/hadoop
export SPARK_WORKER_MEMORY=500m
export SPARK_WORKER_CORES=1
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ali:2181,tencent:2181,huawei:2181 -Dspark.deploy.zookeeper.dir=/spark"

Dspark.deploy.zookeeper.url后面添加的是ZK中所有可以当master的节点

    2.复制slaves.template成slaves添加如下内容

ali
tencent
huawei

    3.配置环境变量,如下

export SPARK_HOME=/home/hadoop/apps/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile

    4.由于有的程序中的stat-all.sh和stop-all.sh与spark/sbin中的这两个文件重名,可以将这两个文件重命名,例如修改为stat-allspark.sh和stop-allspark.sh

4.启动

1.启动zookeeper集群

        zkServer.sh start(在任意一个节点)

2.启动HDFS集群

        start-dfs.sh(在一个节点启动)

3.启动Spark集群

        start-allspark.sh

4.jps查看进程

        可能只有ali节点成功启动了master,那么可以启动start-master.sh即可

5.验证

现在kill掉alive节点的Master进程

刚才alive的节点无法访问

刚才standby状态的节点进行recovering

现在另外一个节点已经成功启动

完成


standalone模式

只在spark-env.sh中配置如下信息

#指定JAVA_HOME位置
export JAVA_HOME=/usr/local/jdk1.8.0_191
#指定spark老大Master的IP
export SPARK_MASTER_IP=ali
#指定spark老大Master的端口
export SPARK_MASTER_PORT=7077
#指定可用的CPU内核数量(默认:所有可用,实际使用时没有配置最后这两个参数)
export SPARK_WORKER_CORES=1
#作业可使用的内存容量,默认格式为1000m或者2g(默认:所有RAM去掉给操作系统用的1GB)
export SPARK_WORKER_MEMORY=1000m

在启动了hadoop的高可用之后启动start-allspark.sh

启动sparkshell

spark-shell \
--master spark://ali:7077 \
--executor-memory 500m \
--total-executor-cores 1

猜你喜欢

转载自blog.csdn.net/u012580143/article/details/84785928