简介
master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Worker节点,Driver,Application的状态
配置spark(standalone)
spark部署模式有Local,Local-Cluster,Standalone,Yarn,Mesos
我们选择最具有代表性的standalone集群部署模式
进入到spark安装目录
cd ./spark-2.1.1-bin-hadoop2.7/conf
将slaves.template复制为slaves
添加内容
slave1
slave2
将spark-env.sh.template
复制为spark-env.sh
添加内容
export HADOOP_CONF_DIR=/root/tools/hadoop-2.7.2
# 指定spark老大master的ip地址,如果是HA,这样不配置,配了ip就是单机,不配ip就要配高可用
export SPARK_MASTER_IP=master
# 指定可用的cpu内核数量(默认: 所有可用)
#export SPARK_WORKER_CORES=1
# 作业可使用的内存容量,默认格式为1000m或者2g(默认:所有RAM去掉给操作系统用的1GB)
#export SPARK_WORKER_MEMORY=500m
# 机器上的worker数量(默认:1).当你有一个非常强大的计算机时可启动多个worker进程
#export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export JAVA_HOME=/usr/jdk8
#(可选)配置两个spark master实现高可靠(首先要配置zookeeper集群,在spark-env.sh添加SPARK_DAEMON_JAVA_OPTS)
#export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"
启动
在sbin目录下
./start-all.sh
日志
starting org.apache.spark.deploy.master.Master, logging to /root/tools/spark-1.6.2-bin-hadoop2.6/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
slave2: starting org.apache.spark.deploy.worker.Worker, logging to /root/tools/spark-1.6.2-bin-hadoop2.6/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out
slave1: starting org.apache.spark.deploy.worker.Worker, logging to /root/tools/spark-1.6.2-bin-hadoop2.6/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out
在web上访问master:8080
停止
./stop-all.sh
高可用
spark-env.sh修改下
export HADOOP_CONF_DIR=/root/tools/hadoop-2.7.2
# 指定spark老大master的ip地址,如果是HA,这样不配置,配了ip就是单机,不配ip就要配高可用
#export SPARK_MASTER_IP=master
# 指定可用的cpu内核数量(默认: 所有可用)
#export SPARK_WORKER_CORES=1
# 作业可使用的内存容量,默认格式为1000m或者2g(默认:所有RAM去掉给操作系统用的1GB)
#export SPARK_WORKER_MEMORY=500m
# 机器上的worker数量(默认:1).当你有一个非常强大的计算机时可启动多个worker进程
#export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export JAVA_HOME=/usr/jdk8
#(可选)配置两个spark master实现高可靠(首先要配置zookeeper集群,在spark-env.sh添加SPARK_DAEMON_JAVA_OPTS)
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"
然后把配置文件分发到各个机器上
然后启动
./start-all.sh
web上看到状态是Status: RECOVERING
如果想启动多个master,在其他机器上
./start-master.sh
运行spark-shell
两种方式运行
- 直接运行
spark-shell
,他是单机通过多线程跑任务,只运行一个进程叫submit - 运行
spark-shell --master spark://master:7077
,将任务运行在集群中,运行submit在master上,运行executor在worker上
还可以这样
spark-shell --master spark://master:7077 --executor-memory 512M --total-executor-cores 2
指定master机器并且指定内存大小并且指定核数是2核