本文分享自天翼云开发者社区《大数据通用组件故障处理》,作者: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过程的数据的大小,配置足够的磁盘空间再提交应用程序。