通用 spark 有哪些常见故障?
- 来源:秀车网 2025-03-07 汽车
通用 spark 常见故障主要有以下这些:
1. 提交的 spark 任务长时间处于 ACCEPTED 状态。此时要从客户端日志中找 tracking URL,比如通过浏览器打开页面查看相关信息,再打开特定队列的资源页面查看详情。
2. SparkSQL 相关:执行 insert 语句时报错“FileSystem closed”,这常在 ThriftServer 里出现,原因是 hadoop FileSystem.get 获得的 FileSystem 从缓存加载,多线程时一个线程 closedFileSystem 会导致此问题,解决办法是在 hdfs-site.xml 配置 fs.hdfs.impl.disable.cache=true。
执行 Spark 时抛出“Failed to bigdata010108:33381,caused by:java.nio.channels.unresolvedAdderssException”,原因是 hosts 未配置,解决方法是修改相应机器的 host。
执行 Sparksql 操作 orc 类型的表时抛出“java.lang.IndexOutOfBoundsException 或者 java.lang.NullPointerException”,原因是分区或表下存在空的 orc 文件,解决办法是修改 ORC 的默认分割策略为 hive.exec.orc.split.strategy=BI。
3. 控制 reduce 端缓冲大小以避免 OOM:Shuffle 过程中 reduce 端 task 并非等 map 端数据全部写入磁盘再拉取,而是边写边拉取。缓冲区默认大小 48MB,增大缓冲区可减少拉取次数提升性能,但 map 端数据量大写出速度快时,可能导致 reduce 端内存溢出,这时可减小缓冲区大小,如减为 12MB。
4. 还可能出现如“Operation category READ is not supported in state standby”“配置 spark.deploy.recoveryMode 选项为 ZOOKEEPER”“多 Master 配置问题”“No Space Left on the device(Shuffle 临时文件过多)”“java.lang.OutOfMemory, unable to create new native thread”“Worker 节点中 work 目录占用许多磁盘空间”“spark-shell 提交 Spark Application 解决依赖库问题”“Spark 发布应用时连接不上 master 问题”“开发 spark 应用程序(和 Flume-NG 结合时)发布应用时可能出现 org.jboss.netty.channel.ChannelException”等故障。