Spark集群启动过程分析

本文详细分析了Spark集群的启动过程,包括环境变量配置,如SPARK_MASTER_HOST、SPARK_MASTER_PORT等,以及Master和Worker的启动流程。Master启动涉及start-master.sh脚本,Worker启动涉及start-slaves.sh。文章还介绍了Master和Worker的初始化步骤,以及如何通过配置文件和命令行参数调整集群设置。
摘要由CSDN通过智能技术生成

环境变量配置

通过命令行参数配置

参数 用途
-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中设置环境变量来进一步配置集群,不过在该文件中配置的属性优先级没有命令行参数高。

  1. 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
  2. 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
  3. 通用的环境变量
    • 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.shstart-slaves.sh分别启动MasterWorkers。总之,不管用什么脚本启动,它们之间的调用链如下图所示:

Master的启动

脚本的执行流程

  1. start-master.sh

    使用start-mas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值