大数据通用组件故障处理
本文分享自天翼云开发者社区《大数据通用组件故障处理》,作者:f****n
HDFS
1.HDFS 服务一直异常
检查 HDFS 是否处于安全模式。
检查 ZooKeeper 服务是否运行正常。
2.HDFS 维护客户端出现 OutOfMemoryError 异常
使用 HDFS 客户端之前,需要在 HADOOP_CLIENT_OPTS 更新"-Xmx" GC 参数。
直接执行如下命令:
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx512m"
在命令中调整参数,减少 HDFS 维护客户端运行命令时所需的内存。
当执行 hdfs dfs -ls /user/*/*/*/*命令时上报 OutOfMemoryError,您可以执行类似的命令来获取目录。例如:hdfs dfs -ls -R /user。
3.NameNode 的主备倒换失败
需要格式化 ZKFC,并将元数据从主 NameNode 拷贝到新增的 NameNode 节点中。
Zookeeper
1.ZooKeeper 无法对外提供服务
检查 ZooKeeper 安装并运行的实例是否为奇数个,如 3 个、5 个。
恢复故障的 ZooKeeper 服务。
2.安装 DNS 导致 ZooKeeper 服务异常
ZooKeeper 所在节点的“/etc/hosts”配置错误,ZooKeeper 所在节点配置了 DNS 服务。
检查 ZooKeeper 故障节点的“/etc/hosts”文件中,IP 和主机名是否正确,是否有一个 IP 对应多个主机名,或者一个主机名对应多个 IP 的情况。
确认 ZooKeeper 所在的节点没有安装 DNS 服务
Yarn
1.ResourceManager 原生界面的链接不可用
检查本地的“hosts”文件中是否对 HostName 和 IP 的对应关系进行了配置。检查该集群是否开放了相应端口。
2.ResourceManager 节点故障
查看是否有 Yarn 服务不可用告警产生,并且告警原因为 No active instance,参考告警中描述操作。
检查 ZooKeeper 服务状态,如果没有告警,说明 ZooKeeper 服务正常,不用检查。检查网络状态。
Spark
1.任务挂起,报 Initial job has not accepted any resources 异常
查看集群内每台节点中的“/etc/hosts”文件中是否加入了客户端节点的 IP 和主机名。如果“/etc/hosts”文件未加入,则修改文件,重试跑应用。
若“/etc/hosts”加入了客户端节点的 IP 和主机名后,该问题还存在时,查看 Executor 端对应的进程 CoarseGrainedExecutorBackend 是否存在。如果不存在,可能是由于 executor memory 配置太大导致的。
2.内存不足,无法退出应用程序
执行命令强制将任务退出,然后通过修改内存参数的方式解决内存不足的问题,使任务执行成功。
针对此类数据量大的任务,希望任务不再挂起,遇到内存不足时,直接提示任务运行失败。
3.由于磁盘空间不足导致运行应用程序失败
应用程序中,若有 shuffle 操作时,会将 shuffle 的数据写到磁盘中。当磁盘空间不够时,便会出现“No space left on device”错误。
建议在执行 Spark 开发程序之前,应先根据实际数据量,估算 shuffle 过程的数据的大小,配置足够的磁盘空间再提交应用程序。
评论