环境变量配置
通过命令行参数配置
参数 | 用途 |
---|---|
-h HOST , --host HOST |
Master或Workers的主机地址。 |
-p PORT , --port PORT |
Master或Worerks的端口号(默认是:7077,而Worker的端口号随机)。 |
--webui-port PORT |
WebUI界面的端口号(默认情况下,Master是8080,Worker是8081)。 |
-c CORES , --cores CORES |
允许Spark Applications在机器上使用的总CPU内核数(默认是使用所有的内核),该配置仅限于Worker。 |
-m MEM , --memory MEM |
允许Spark Applications在机器上使用的内存总量(默认是:1g),该配置仅限于Worker。每个Application使用的内存都使用其spark.executor.memory 属性进行配置。 |
-d DIR , --work-dir DIR |
用于临时空间和作业输出日志的目录(默认是:${SPARK_HOME}/work),该配置仅限于Worker。 |
--properties-file FILE |
要加载的自定义Spark属性文件的路径(默认是:${SPARK_HOME}/conf/spark-defaults.conf)。 |
通过spark-env.sh配置
也可以通过在conf / spark-env.sh
中设置环境变量来进一步配置集群,不过在该文件中配置的属性优先级没有命令行参数高。
- master环境变量
- SPARK_MASTER_HOST:将Master绑定到特定的主机名或IP地址;
- SPARK_MASTER_PORT:在指定的端口启动Master(默认:7077);
- SPARK_MASTER_WEBUI_PORT:Master Web UI的端口(默认:8080);
- SPARK_MASTER_OPTS:以“-Dx = y”(默认值:无)格式应用于Master的配置属性,具体支持的属性如下configuration.html#SPARK_MASTER_OPTS
- worker环境变量
- SPARK_WORKER_CORES:允许Spark Applications在机器上使用的内核总数(默认:所有可用内核);
- SPARK_WORKER_MEMORY:允许Spark Applications在机器上使用的内存总数(默认:所有1G)。请注意,每个Application使用的内存都使用其
spark.executor.memory
属性进行配置。 - SPARK_WORKER_PORT:Worker的启用特定端口(默认值:随机分配);
- SPARK_WORKER_WEBUI_PORT:Worker的WebUI端口号(默认值是8081);
- SPARK_WORKER_DIR:在Worker中运行Application的目录,其中将包括日志和暂存空间(默认值:SPARK_HOME / work)。
- SPARK_WORKER_OPTS:以“-Dx = y”(默认值:无)格式应用于Worker的配置属性,具体支持的属性如下configuration.html#SPARK_WORKER_OPTS
- 通用的环境变量
- SPARK_LOCAL_DIRS:用于存储map输出文件和存储在磁盘上的RDD缓存。这应该在系统中的快速本地磁盘上,它也可以是不同磁盘上多个目录的逗号分隔列表。
- SPARK_DAEMON_MEMORY:分配给Master和Workers守护进程的内存(默认是1G);
- SPARK_DAEMON_JAVA_OPTS:Spark master和worker守护进程的JVM选项,格式为“-Dx = y”(默认值:无)。
- SPARK_PUBLIC_DNS:Spark Worker和Master的公共DNS名称。
集群的启动过程
Master和Workers需要通过脚本来启动,可以使用start-all.sh
一键启动Master和Workers,也可以使用start-master.sh
和start-slaves.sh
分别启动Master和Workers。总之,不管用什么脚本启动,它们之间的调用链如下图所示:
Master的启动
脚本的执行流程
start-master.sh
使用
start-mas