本文主要搭建spark standlone集群
环境准备
spark安装包,java环境,scala包,zookeeper,节点之间免秘钥配置
开始搭建
角色信息
10.17.155.40 master/worker <br/> 10.17.155.50 master/worker </br> 10.17.155.58 worker
-
前期准备
ip: 10.17.155.40
- 上传spark安装包并解压
- 创建配置文件
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
cp slaves.templete slaves
-
修改配置文件
ip: 10.17.155.40
-
修改spark-env.sh配置
#开启eventLog spark.eventLog.enabled true #设置eventLog存储目录 spark.eventLog.dir /risen/monitor/app/spark-2.2.0-bin-hadoop2.6/logs/eventlog #设置spark序列化方式 spark.serializer org.apache.spark.serializer.KryoSerializer #设置spark的driver内存 spark.driver.memory 1g #设置spark的心跳检测时间间隔 spark.executor.heartbeatInterval 20s #默认并行数 spark.default.parallelism 20 #最大网络延时 spark.network.timeout 3000s
-
修改spark-defaults.conf配置
# 设置spark主节点ip SPARK_MASTER_IP=10.17.155.40 # 设置spark主节点端口 SPARK_MASTER_PORT=7077 #设置spark的web访问端口 SPARK_MASTER_WEBUI_PORT=18080 #设置spark的任务处理日志存放目录 SPARK_WORKER_DIR=/risen/monitor/app/spark-2.2.0-bin-hadoop2.6/work #设置spark每个worker上面的核数 SPARK_WORKER_CORES=2 #设置spark每个worker的内存 SPARK_WORKER_MEMORY=1g #设置spark的启动日志等目录 SPARK_LOG_DIR=/risen/monitor/app/spark-2.2.0-bin-hadoop2.6/logs #指定spark需要的JDK目录 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-arm64 #指定spark需要的Scala目录 export SCALA_HOME=/risen/monitor/app/scala-2.11.8 #实现spark-standlone HA export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=10.17.155.40:2181,10.17.155.50:2181,10.17.155.58:2181 -Dspark.deploy.zookeeper.dir=/risen/monitor/app/spark-2.2.0-bin-hadoop2.6/zookeeper"
- 修改slaves配置
10.17.155.40 10.17.155.50 10.17.155.58
-
-
在其中一个节点(10.17.155.40)上配置好后,scp到其他节点
-
修改备用主节点(10.17.155.50)的配置文件中的spark-env.sh中的SPARK_MASTER_IP为10.17.155.50即可,其他配置文件不需要改动
由于10.17.155.58不需要作为主节点,所以它里面的spark-env.sh的里面的SPARK_MASTER_IP指向的是默认主节点10.17.155.40,故所有配置文件都不需要改动
-
启动角色(特别注意)
- 10.17.155.40 默认为master和slave所以直接进入到sbin下
./start-all.sh
- 10.17.155.50 默认为备master和worker,所以直接进入到sbin下
./start-master.sh
即可 - 10.17.155.58 默认为worker,所以什么也不用做
在上述启动过程中,58什么也不用做,50只启动master,那是因为40在start-all的时候已经启动了所有节点的worker和40的master,而50是备master,所以只需要启动一个master即可
- 10.17.155.40 默认为master和slave所以直接进入到sbin下