Standalone模式下:
master进程就是Cluster Manager
配置步骤
在spark/conf/下配置slaves
1.mv slaves.template slaves
2.vim slaves
hadoop01
hadoop02
hadoop03
在spark/conf/下配置spark-env.sh
1.mv spark-env.sh.template spark-env.sh
2.vim spark-env.sh
SPARK_MASTER_HOST=hadoop01
SPARK_MASTER_PORT=7077
分发spark目录
xsync spark/
启动
./sbin/start-all.sh
浏览器查看master:hadoop01:8080
standalone集群模式客户端部署方式10核执行应用
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master spark://hadoop01:7077
–executor-memory 2G
–total-executor-cores 10
/path/to/examples.jar
1000
若需启用spark应用非0退出时自动重启的特性,可增加–supervise参数项给spark-submit
如需杀掉某个运行应用,可执行
./bin/spark-class org.apache.spark.deploy.Client kill spark://hadoop01:7077 <你的驱动程序ID>
standalone集群HA模式
1.zookeeper正常安装并启动
2.在standalone集群模式的基础上,在spark-env.sh文件变更如下:
注释掉如下内容
#SPARK_MASTER_HOST=hadoop01
#SPARK_MASTER_PORT=7077
添加上如下内容
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hadoop01,hadoop02,hadoop03
-Dspark.deploy.zookeeper.dir=/home/hadoop/spark"
3.同步所有节点的spark-env.sh一致
4.在hadoop01上启动全部节点:./sbin/start-all.sh,此时hadoop01是active master
5.在hadoop02上启动全部节点:./sbin/start-master.sh,此时hadoop02是standby master
6.访问测试:bin/spark-shell
–master spark://hadoop01:7077,hadoop02:7077
–executor-memory 2g
–total-executor-cores 2
附录
spark-env.sh中可选环境变量列表:
变量 | 描述 |
---|---|
SPARK_MASTER_WEBUI_PORT | 主节点进程WebUI端口(Moreno8080) |
SPARK_MASTER_OPTS | 给master进程配置jvm属性格式 “-Dx=y” (默认: 无) |
SPARK_LOCAL_DIRS | map 输出文件 and RDD 存储的空间。应该设置为快速的本地磁盘目录,可以设置为多个本地磁盘目录 |
SPARK_WORKER_CORES | Spark应用在机器上使用的总核数 (默认: cpu核数). |
SPARK_WORKER_MEMORY | Spark应用在机器上使用的内存容量,比如1000m, 2g(默认: 总内存 减 1 GB) |
SPARK_WORKER_PORT | Worker的使用端口 (默认: 随机). |
SPARK_WORKER_WEBUI_PORT | Worker Web UI的端口(默认: 8081). |
SPARK_WORKER_DIR | Worker工作目录,包括日志和中间文件输出 (默认:SPARK_HOME/work). |
SPARK_WORKER_OPTS | 给worker进程配置jvm属性格式 “-Dx=y” (默认: 无) |
SPARK_DAEMON_MEMORY | 分配给master、workers守护进程的内存(默认: 1g). |
SPARK_DAEMON_JAVA_OPTS | 给master、workers守护进程配置jvm属性格式 “-Dx=y” (默认: 无) |
SPARK_DAEMON_CLASSPATH | master、workers守护进程CLASSPATH(默认:无) |
SPARK_PUBLIC_DNS | master and workers 公用DNS域名(默认:无) |
SPARK_MASTER_OPTS中属性可选列表
属性 | 默认值 | 描述 |
---|---|---|
spark.deploy.retainedApplications | 200 | UI保留可显示的已完成应用个数 |
spark.deploy.retainedDrivers | 200 | UI保留可显示的已完成driver个数 |
spark.deploy.spreadOut | true | standalone集群管理器是否应该将应用程序分散到各个节点上,或者尝试将它们整合到尽可能少的节点上。分散通常对HDFS数据本地化更好,但整合对于计算密集型更有效 |
spark.deploy.defaultCores | (infinite) | 如果没有设置spark.cores.max,默认许可standalone集群尽可能用尽所有核。在多用户共享的情况下,尽量设置,防止一个用户用尽集群所有cpu核 |
spark.deploy.maxExecutorRetries | 10 | executor失败最大重试次数 |
spark.worker.timeout | 60 | master认为worker挂掉的心跳超时 |
SPARK_WORKER_OPTS中属性可选列表
属性 | 默认值 | 描述 |
---|---|---|
spark.worker.cleanup.enabled | false | 定时清理worker / application 临时目录。只在standalone模式才使用。只有停止的应用临时目录才会被清理 |
spark.worker.cleanup.interval1800(30分) | 定时清理的时间间隔 | |
spark.worker.cleanup.appDataTtl | 604800(7 * 24 * 3600) | worker工作目录保留的时间。但取决于你磁盘的可用容量 |
spark.worker.ui.compressedLogFileLengthCacheSize | 100 | Spark缓存未压缩日志文件大小,用于控制缓存大小 |