【Hadoop报错】The directory item limit is exceeded: limit=1048576 items=1048576
问题描述:
调度系统执行hive任务失败,一直执行失败,报错如下:
java.io.IOException: java.net.ConnectException: Call From #HostName/#IP to #HostName:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Caused by: java.net.ConnectException: Call From #HostName/#IP to #HostName:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
CONSOLE# Ended Job = job_1638255473937_0568 with exception 'java.io.IOException(java.net.ConnectException: Call From #HostName/#IP to #HostName:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused)
CONSOLE# FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. java.net.ConnectException: Call From #HostName/#IP to #HostName:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
这个信息还看不出具体的问题所在,查看服务器上所有的日志,也没有看出问题,最后查看yarn的日志,看出问题所在。
根据调度系统,获取到ApplicationId:application_1638255473937_0568 , 然后从hdfs上查看对应的日志信息。

查看yarn日志信息:
[hdfs@centos hadoop27]$ yarn logs -applicationId application_1638255473937_0568
关键报错信息:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.FSLimitException$MaxDirectoryItemsExceededException): The directory item limit of /tmp/hadoop-yarn/staging/history/done_intermediate/hdfs is exceeded: limit=1048576 items=1048576

报错原因:
hadoop单个目录下文件超1048576个,默认limit限制数为1048576,所以要调大limit限制数。
解决方法1:
hdfs-site.xml配置文件添加配置参数:dfs.namenode.fs-limits.max-directory-items ,调大参数值。

将配置文件推送到hadoop集群所有节点,重启Hadoop服务。
解决方法2:
如果不方便修改配置重启hadoop集群服务。可以先删除该目录:/tmp/hadoop-yarn/staging/history/done_intermediate/hdfs
然后重建目录即可。
hadoop fs -rm -r /tmp/hadoop-yarn/staging/history/done_intermediate/hdfs
hadoop fs -mkdir /tmp/hadoop-yarn/staging/history/done_intermediate/hdfs
造成这个目录文件数超上限,本质原因还是hadoop集群之前没有开启jobhistory server,没有清除历史job日志信息导致的。
参考文章:http://www.tracefact.net/tech/079.html
扩展信息:
一:如何查看yarn日志存放目录及日志详细信息
1:通过history server UI界面查看。(我这里是http://IP:8801/jobhistory)



2:通过yarn命令查看(用户要和提交任务的用户一致)
2.1: yarn application -list -appStates ALL(这个不显示时间信息)
2.2: yarn logs -applicationId application_1638255473937_0568
3:直接查看hdfs路径的log (是存放在hdfs目录上的,不是存放在centos系统的自定义日志目录上)
3.1: 查看yarn-site.xml文件,确认log配置目录。
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data1/hadoop27/logs</value>
</property>
3.2: 查看日志文件信息
[hdfs@centos hadoop]$ hdfs dfs -ls /data1/hadoop27/logs/hdfs/logs/application_1638255473937_0568
Found 1 items
-rw-r----- 2 hdfs hdfs 66188 2021-11-30 20:24 /data1/hadoop27/logs/hdfs/logs/application_1638255473937_0568/centos.pp1.db_46654
3.3: 查看日志详细信息
3.3.1: yarn logs -applicationId application_1638255473937_0568 (同2)
3.3.2: hdfs dfs -cat /data1/hadoop27/logs/hdfs/logs/application_1638255473937_0568/centos.pp1.db_46654 ## 通过-cat查看
3.3.3: hdfs dfs -cat /data1/hadoop27/logs/hdfs/logs/application_1638255473937_0568/centos.pp1.db_46654 > tmp.log ## 通过-cat把内容存到当前目录的tmp.log中。
3.3.4: hdfs dfs -get /data1/hadoop27/logs/hdfs/logs/application_1638255473937_0568/centos.pp1.db_46654 ## 通过get把hdfs文件下载到当前啊目录下,然后查看。
二: hdfs操作命令:
1.1: 查看hdfs的指定目录下有多少个文件夹和文件。
[hdfs@centos hadoop]$ hadoop fs -count /tmp/hadoop-yarn/staging/history/done_intermediate/hdfs
1 1048576 3253261451467 /tmp/hadoop-yarn/staging/history/done_intermediate/hdfs
第一个数值1表示该目录下有1个文件夹。
第二个数值1048576表示该目录下有1个文件。
第三个数值3253261451467表示该目录下所有文件总大小。
【Hadoop报错】The directory item limit is exceeded: limit=1048576 items=1048576的更多相关文章
- eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ...
- 解决sqoop报错Invalid number; item = ITEM_UNICODE
报错栈: java.sql.SQLException: Invalid number; item = ITEM_UNICODE at com.intersys.jdbc.SysList.getInt( ...
- hadoop报错WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/06/14 10:44:58 WARN common.Util: Path /opt/hadoopdata/hdfs/name should be specified as a URI in c ...
- 解决windows下Eclipse连接远程Hadoop报错
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.N ...
- hadoop报错:java.io.IOException(java.net.ConnectException: Call From xxx/xxx to xxx:10020 failed on connection exception: java.net.ConnectException: 拒绝连接
任务一直报错 现象比较奇怪,部分任务可以正常跑,部分问题报错 报错信息如下: Ended Job = job_1527476268558_132947 with exception 'java.io. ...
- hadoop报错:could only be replicated to 0 nodes, instead of 1
错误 [root@hadoop test]# hadoop jar hadoop.jarcom.hadoop.hdfs.CopyToHDFS 14/01/26 10:20:00 WARN hdfs.D ...
- hadoop报错
19/11/24 08:29:08 INFO qlh.MyMapreduce: ================this is job================= 19/11/24 08:29: ...
- ubuntu环境下重启mysql服务报错“No directory, logging in with HOME=-”
前提:使用系统的环境 3.13.0-24-generic mysql的版本:5.6.33 错误描述: 首先用mysqld_safe启动报错如下: root@zabbix-forFunction:~# ...
- hadoop报错:hdfs.DFSClient: Exception in createBlockOutputStream
hadoop跑任务搞的好好的,后来把hadoop-dir移了一个位置,结果报错: java.io.EOFException: Premature EOF: no length prefix avail ...
- HADOOP报错Incompatible namespaceIDs
出现这个问题的原因是因为namespaceIDs导致的 解决方案1<推荐> 1. 进入链接不上的从机 stop-all.sh关闭hadoop 2. 编辑namespaceID,路径是< ...
随机推荐
- elasticsearch 6.2.4和elasticsearch-head环境搭建 使用docker-compose方式
elasticsearch 6.2.4和elasticsearch-head测试环境搭建 使用docker-compose方式 一 背景说明 对于新手来说搭建一个elasticsearch的测试环境稍 ...
- ibus 输入法导致输入卡顿的解决方案
系统: Zorin OS 16 Pro 基于 Ubuntu 20.04 LTS 关键词:Linux 间歇性卡顿.输入法导致卡顿.无法输入 本问题发生的情形是系统间歇性的无法接受键盘输入,无意间发现切换 ...
- GaussDB细粒度资源管控技术透视
本文分享自华为云社区<[GaussTech速递]技术解读之细粒度资源管控>,作者:GaussDB 数据库. 背景 对数据库集群内资源管控与资源隔离一直是企业客户长久以来的诉求.华为云Gau ...
- 案例-java贪吃蛇(附源码)
创建屏幕 开始游戏的窗口,首先引入窗口,然后在窗口画布上进行添加各类动画. JFrame frame=new JFrame("My SnakeGame"); Jframe 是个类, ...
- 🔥httpsok-v1.8.1 一分钟搞定SSL证书自动续期
httpsok-v1.8.1 一分钟搞定SSL证书自动续期 简介 一行命令,一分钟轻松搞定SSL证书自动续期 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 服务器设计. ...
- C#实现图片转Base64字符串.并支持markdown文件打开展示
引用1.0.3版本或以上的Wesky.Net.OpenTools 包 1.0.3 版本提供图片转Base64字符串方案,并提供根据后缀名自动识别Mime类型,合成标准URI 开源项目地址: Gitee ...
- fuser命令详解
fuser -mv 作用 fuser命令是用来显示所有正在使用着指定的file.file system或者sockets的进程信息.具体来说,fuser -mv的作用如下: 参数-m:指定一个被加载的 ...
- VisualStduio如何自定义代码片段
什么是代码片段 代码片段又叫CodeSnippet,可以用来快捷补全代码.其实我们经常使用这个功能. 比如for循环,输入for会弹出这个窗口 我们选择第二个for,再按两次Tab键,编辑器就会自动生 ...
- RocketMQ的单节点环境搭建
1 介绍RocketMQ作为一款纯java.分布式.队列模型的开源消息中间件,支持事务消息.顺序消息.批量消息.定时消息.消息回溯等. 1.1 RocketMQ 特点支持发布/订阅(Pub/Sub)和 ...
- c# 记一次批量获取自己的qq好友的CF游戏战绩
突然想耍穿越火线,就下载了,想看看自己的战绩就在这个网址上查:https://cf.qq.com/wx/zjcx.htm,后来又想看看qq好友的战绩,就得一个一个得复制粘贴qq,选择大区.我这时候就像 ...