背景
这里用的是spark3.2.1,他是基于内存计算的。

Spark Standalone:
依赖java,Spark Standalone 是 Spark 原生集群模式,无需依赖第三方资源管理器,包含 Master 节点管理集群资源、Worker 节点执行任务,部署简单,适合中小规模数据处理场景。

java,etc/prfoile的配置
export JAVA_HOME=/usr/local/java/jdk8.0.19/TencentKona-8.0.19-422
export PATH=$PATH:${JAVA_HOME}/bin

架构
通常测试1个master,n个worker,1个historyserver

Master
Spark Standalone 的主控节点,负责管理集群 Worker 节点、接收应用提交、分配资源和调度任务,保障集群资源的统一管控与任务分发。spark-ui端口是8080


Worker
Spark Standalone 的工作节点,接收 Master 分配的资源调度,启动 Executor 执行 Task,汇报节点资源使用状态,是实际承载数据计算的核心节点

work的目录在spark/work/里面有,driver和work,driver是随机分配的收集节点。
收集其他executer的执行信息

如何查看任务的信息?

spark如何看executor有没有报错?

点进去,可以看到executor的stderr,是running还是exits

如果spark的driver失败,如何排查错误?

进入sparkui
默认master:8080

到这台worker机器上,172.16.27.242

找到对应的driver目录,看stderr日志

/data/spark-3.2.1-bin-hadoop2.7/work/driver-20260403155720-0000

发现报错

hosts连接不上,观察机器的hostname与hosts地址是否一致,修改/etc/hosts,注意hosts不能用特殊字符比如_号等。修改后要重启spark,建议将/etc/hosts设置为禁用
sudo chattr -i /etc/hosts

1台worker挂了,如何快速恢复
登录到worker节点的sbin上

# 进入你的 Spark 安装目录 cd /path/to/spark # 单独启动 Worker,并指定 Master
./sbin/start-worker.sh spark://master-ip:7077


History Server
Spark 历史服务,读取spark.eventLog.dir存储的事件日志,提供已结束应用的 UI 访问,可查看历史 Job/Stage/Task 详情,定位运行问题。

/tmp/spark-event是他的日志存储,需要hdfs才能凑齐其他数据的,本地磁盘的话,得scp到对应的那台节点

executor是最小执行单元,能够执行任务,一个sparksql对应一个job,job会把他的任务分成多个executor去执行。

job也可以并发多个,一般建议5~10

如何查看日志,进入spark,点击driver,然后就能看到是哪台节点,就可以去看日志了。

如果是启动问题那就看,logs,具体的任务要看work。

cat xx |grep -C 5 "搜索内容"
这种可以看搜索内容的上下5行

ll -t ,按修改时间从新到旧排序(降序)

ll -l -t ,长格式展示



 

更多推荐