Spark运行脚本解析 - start-all.sh

      部署Standalone Cluster模式的Spark,可以通过2种方法来启动Cluster:

      1)通过手工的方式,单独在Master节点上启动master实例;然后,再单独在Worker节点上启动worker实例;

      2)通过Spark自带的运行脚本来管理启动,只需要运行./sbin/start-all.sh,就可以自动启动master和所有的worker实例。

      本文解析的就是start-all.sh这个脚本,代码如下:

#!/usr/bin/env bash

# 启动spark的所有守护进程
# 在执行本脚本的机器上启动1个marster实例
# 在每1个conf/slaves中指定的节点上启动1个worker实例

if [ -z "${SPARK_HOME}" ]; then
  export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi

# 加载Spark相关配置信息
. "${SPARK_HOME}/sbin/spark-config.sh"

# 
### Spark 集群启动后的 Master 和 Worker 日志路径及状态 当使用 `start-all.sh` 脚本启动 Spark 集群时,Master 和 Worker 的日志通常会保存在 `$SPARK_HOME/logs` 目录下。具体来说: - **Master 日志**:位于 `${SPARK_HOME}/logs/spark-${USER}-org.apache.spark.deploy.master.Master-*.out` 文件中[^1]。 - **Worker 日志**:位于 `${SPARK_HOME}/logs/spark-${USER}-org.apache.spark.deploy.worker.Worker-*.out` 文件中[^2]。 可以通过查看这些日志文件来确认 Master 和 Worker 是否正常启动以及是否有任何错误信息。 关于集群的状态监控,可以访问 Web UI 来获取实时的运行情况。默认情况下: - **Master 的 Web UI 地址** 是 `http://<master-host>:8080`,这里 `<master-host>` 是指 Master 所在主机的 IP 或者域名[^3]。 - **Worker 的 Web UI 地址** 则是 `http://<worker-host>:8081`,其中 `<worker-host>` 表示某个 Worker 节点的地址。 如果需要进一步调整日志级别或者存储位置,则可以在 `conf/log4j.properties.template` 中修改配置并重命名为 `log4j.properties`。 对于版本号为 `spark-3.3.4-bin-hadoop3-scala2.13` 的环境,默认的日志行为遵循上述描述;如果有自定义设置(比如 HDFS 上面记录事件),则需额外关注对应的参数如 `spark.eventLog.dir` 等是否被重新指定。 ```bash # 查看当前 SPARK_HOME 下的日志目录结构 ls ${SPARK_HOME}/logs/ ``` #### 示例代码片段用于验证服务状态 以下是通过脚本简单检测 Spark Master 和 Worker 运行状况的一个例子: ```python import requests def check_spark_status(master_url, worker_urls): try: master_response = requests.get(f"{master_url}/json/") if master_response.status_code == 200 and 'activeapps' in master_response.json(): print("Master is running.") for idx, url in enumerate(worker_urls, start=1): worker_response = requests.get(url + "/json/") if worker_response.status_code == 200 and 'executors' in worker_response.json(): print(f"Worker {idx} is running at {url}.") else: print(f"Worker {idx} not responding or inactive.") except Exception as e: print(f"Error occurred while checking status: {e}") if __name__ == "__main__": MASTER_URL = "http://localhost:8080" WORKER_URLS = ["http://localhost:8081", "http://another-worker:8081"] check_spark_status(MASTER_URL, WORKER_URLS) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值