多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 简介 ![](https://box.kancloud.cn/b0f1c55129b028765587d4d296801428_852x475.png) master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Worker节点,Driver,Application的状态 Worker节点负责具体的业务运行 # 配置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 两种方式运行 1. 直接运行`spark-shell`,他是单机通过多线程跑任务,只运行一个进程叫submit 2. 运行`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核