FAQ-MaxDirectoryItemsExceededException
更新时间: 2024-03-11 02:46:39
阅读 2317
FAQ: org.apache.hadoop.hdfs.protocol.FSLimitException$MaxDirectoryItemsExceededException
问题描述/异常栈
diagnostics: User class threw exception: org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.FSLimitException$MaxDirectoryItemsExceededException): The directory item limit of /tmp/hive/dfc is exceeded: limit=1048576 items=1048576
解决方案
1. 将异常栈中提示目录重命名后,新建一个同名目录并修改权限与之前相同;
2. 调整NN配置参数`dfs.namenode.fs-limits.max-directory-items`参数,该参数上限值可调整为6400000;
问题原因
产生该问题原因为:HDFS目录下的子目录/文件数量达到上限,默认值为1048576。 已知触发场景有:
1. 每次执行HiveQL时,都会在`hive.exec.scratchdir`配置的目录下生成一个临时目录,任务执行结束后自动删除,但任务异常中断可能会导致删除失败;
2. SparkHistory数据存储在HDFS上,默认不会自定删除,也有可能达到文件数上限;
作者:焦巍
文档反馈
以上内容对您是否有帮助?