spark web UI端口 4040,18080, 8080页面访问不了

本文详细介绍了如何配置和启动Spark History Server,包括修改spark-env.sh文件以启用事件日志,设置日志目录,以及如何在HDFS中创建存储目录。此外,还解释了如何通过配置Spark History Server选项来指定Web UI端口、缓存中保存的应用程序历史记录数量以及历史记录文件的存储目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

ip:4040无法访问时spark history server未启动或者暂时无spark任务运行

启动命令:

在主节点spark_home/sbin

./start-history-server.sh

注意:4040端口显示的是正在运行的spark任务,一旦任务运行完成或者没有任务运行,4040端口是无法访问的

ip:18080无法访问时spark history server未启动

spark history server可以查看所有的运行完成的spark任务的详情

Spark History Server配置

修改spark-env.sh


 

spark.eventLog.enabled true

spark.eventLog.dir hdfs://master:9000/spark-logs

spark.eventLog.compress true

 

2、在HDFS中建立存放目录。

hdfs dfs -mkdir /spark-logs

之后的历史记录都会被存放到这里。

3、配置spark-env.sh文件。

在之前的配置项后面

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9000/spark-logs

属性说明

(1) spark.history.ui.port

WebUI的端口号。默认为18080,也可以自行设置。

(2) spark.history.retainedApplications

设置缓存Cache中保存的应用程序历史记录的个数,默认50,如果超过这个值,旧的将被删除。

注:缓存文件数不表示实际显示的文件总数。只是表示不在缓存中的文件可能需要从硬盘读取,速度稍有差别。

(3) spark.history.fs.logDirectory

存放历史记录文件的目录。可以是Hadoop APIs支持的任意文件系统。

启动

 

[root@master sbin]# ./start-history-server.sh 

如果提示文件目录无效,可以直接使用下面的命令指定目录:

[root@master sbin]# ./start-history-server.sh  hdfs://master:9000/spark-logs

启动后的效果如下(此时尚未运行程序,没有记录显示出来):

master:可以改为对应的机器ip

显示效果

如果无任务运行4040端口无法访问。

### Spark Web UI 默认端口及配置方法 #### 默认端口 Spark Master 的 Web UI 默认监听的端口为 `8080`[^4]。然而,在实际部署过程中,可能会因为端口冲突或其他原因导致默认端口不可用。此时,Spark 会尝试自动切换到下一个可用端口。 #### 配置自定义端口的方法 为了避免端口冲突或满足特定需求,可以手动配置 Spark Web UI 所使用的端口。以下是具体的配置方式: 1. **通过环境变量设置** 可以在启动 Spark Master 或 Worker 节点之前,通过设置环境变量来指定端口号。例如: ```bash export SPARK_MASTER_PORT=9090 ./sbin/start-master.sh ``` 这里的 `SPARK_MASTER_PORT` 即为 Spark Master 的 Web UI 端口。 2. **修改配置文件** 编辑 Spark 安装目录下的 `conf/spark-defaults.conf` 文件,添加如下内容以永久化配置: ```properties spark.ui.port=9090 ``` 上述配置项 `spark.ui.port` 是用来设定 Spark 应用程序的 Web UI 端口[^3]。 3. **动态调整最大重试次数** 如果遇到因端口冲突而导致的绑定失败问题,还可以通过调整参数 `spark.port.maxRetries` 来增加 Spark 尝试绑定新端口的次数。例如: ```properties spark.port.maxRetries=100 ``` #### 注意事项 - 当多个 Spark 实例在同一台机器上运行时,建议分别为它们分配不同的 Web UI 端口,以免发生冲突。 - 若使用 YARN 模式,则需注意 YARN 自身也有类似的 Web UI 功能,其默认端口通常为 `8088`[^5]。 ```python # 示例代码:验证端口是否被占用 import socket def is_port_in_use(port): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: return s.connect_ex(('localhost', port)) == 0 port_to_check = 8080 if is_port_in_use(port_to_check): print(f"Port {port_to_check} is already in use.") else: print(f"Port {port_to_check} is available.") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值