HDFS报错datanode.DataNode (DataXceiverServer.java:run(168))

HDFS频繁报如下错误:

2022-02-28 00:15:39,115 WARN  datanode.DataNode (DataXceiverServer.java:run(168)) - hadoop-04:50010:DataXceiverServer:
java.io.IOException: Xceiver count 202 exceeds the limit of concurrent xcievers: 200
        at org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:150)
        at java.lang.Thread.run(Thread.java:748)
2022-02-28 00:15:39,217 WARN  datanode.DataNode (DataXceiverServer.java:run(168)) - hadoop-04:50010:DataXceiverServer:
java.io.IOException: Xceiver count 202 exceeds the limit of concurrent xcievers: 200
        at org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:150)
        at java.lang.Thread.run(Thread.java:748)
2022-02-28 00:15:39,259 INFO  DataNode.clienttrace (DataXceiver.java:requestShortCircuitFds(425)) - src: 127.0.0.1, dest: 127.0.0.1, op: REQUEST_SHORT_CIRCUIT_FDS, blockid: 1109394163, srvID: 2a966b4d-4941-4e55-9961-1a7f46a26b80, success: true
2022-02-28 00:15:39,294 INFO  DataNode.clienttrace (BlockReceiver.java:finalizeBlock(1533)) - src: /172.25.4.65:18826, dest: /172.25.4.65:50010, bytes: 134217728, op: HDFS_WRITE, cliID: DFSClient_NONMAPREDUCE_-44093795_1, offset: 0, srvID: 2a966b4d-4941-4e55-9961-1a7f46a26b80, blockid: BP-734843239-172.25.4.62-1610084212828:blk_1109394784_35656232, duration(ns): 333214502
2022-02-28 00:15:39,294 INFO  datanode.DataNode (BlockReceiver.java:run(1506)) - PacketResponder: BP-734843239-172.25.4.62-1610084212828:blk_1109394784_35656232, type=HAS_DOWNSTREAM_IN_PIPELINE, downstreams=2:[172.25.4.64:50010, 172.25.4.63:50010] terminating
2022-02-28 00:15:39,297 INFO  datanode.DataNode (DataXceiver.java:writeBlock(738)) - Receiving BP-734843239-172.25.4.62-1610084212828:blk_1109394792_35656240 src: /172.25.4.65:18832 dest: /172.25.4.65:50010

 

 解决方法:

Hadoop HDFS DataNode 在任何时候都可以提供文件数量的上限。上限由 dfs.datanode.max.transfer.threads属性控制。修改hdfs-site.xml配置为至少4096(HDP集群默认200)。

 

 

hadoop jar hadoop-mapreduce-examples-3.2.4.jar wordcount /wordcount.txt /output 2025-03-20 11:28:31,412 INFO client.RMProxy: Connecting to ResourceManager at hadoop1/192.168.186.100:8032 2025-03-20 11:28:32,480 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_1742440977107_0002 2025-03-20 11:28:32,685 WARN hdfs.DataStreamer: DataStreamer Exception org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hadoop-yarn/staging/root/.staging/job_1742440977107_0002/job.jar could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation. at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:2276) at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.chooseTargetForNewBlock(FSDirWriteFileOp.java:294) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2820) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:910) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:577) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:549) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:518) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1086) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1035) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:963) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.secu
最新发布
03-21
从您提供的信息来看,Hadoop作业运行失败的原因在于数据节点(DataNodes)不可用或未正常启动。以下是针对此问题的具体分析以及解决办法: ### 问题描述 当尝试提交 Hadoop MapReduce WordCount 示例任务 `hadoop jar hadoop-mapreduce-examples-3.2.4.jar wordcount /wordcount.txt /output` 时,日志显示以下关键错误: ``` File /tmp/hadoop-yarn/staging/root/.staging/job_1742440977107_0002/job.jar could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation. ``` 这意味着当前集群中没有任何可用的数据节点 (Datanodes),导致文件无法复制到所需的副本数 (`minReplication`)。 --- ### 可能原因及解决方案 #### 原因 1:Datanodes 没有启动 检查是否所有 Datanodes 正常工作并连接到了 Namenode 上。 **解决步骤**: 1. 执行命令 `jps` 查看是否有 Datanode 进程存在。 - 如果看不到 Datanode,则需要手动启动它。 - 使用以下命令重启 HDFS 和 YARN: ```bash stop-dfs.sh && start-dfs.sh ``` - 或者单独启动 Datanode: ```bash hadoop-daemon.sh start datanode ``` 2. 确认 Datanodes 是否成功注册到 Namenode: - 访问 Web UI 页面 http://<namenode-host>:9870 并查看 "Live Nodes" 部分是否存在 Datanodes 列表。 --- #### 原因 2:Namenode 和 Datanode 的配置不匹配 如果 Namenode 和 Datanode 的配置文件(如 core-site.xml、hdfs-site.xml)中的参数设置不一致,可能导致两者之间通信失败。 **解决步骤**: 1. 检查 `core-site.xml` 文件中的 `fs.defaultFS` 参数值是否正确指向 Namenode 地址。 ```xml <property> <name>fs.defaultFS</name> <value>hdfs://<namenode-host>:9000</value> </property> ``` 2. 检查 `hdfs-site.xml` 中关于副本数的设置是否合理,默认情况下应为 3: ```xml <property> <name>dfs.replication</name> <value>1</value> <!-- 修改成合理的值 --> </property> ``` 3. 同步所有节点上的配置,并重新格式化 Namenode: ```bash hdfs namenode -format ``` --- #### 原因 3:网络连接问题 若主机之间的防火墙规则阻止了端口访问(例如 50010、50075),也可能导致 Datanodes 无法与 Namenode 对接。 **解决步骤**: 1. 关闭防火墙服务(临时操作用于测试连通性): ```bash systemctl stop firewalld ``` 2. 确保所有机器间的 SSH 密钥免密登录已配置完成: ```bash ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` --- #### 原因 4:磁盘空间不足或其他硬件资源限制 有时由于本地存储设备损坏或者权限不够等原因造成写入异常。 **解决建议**: 1. 登录至出现问题的那个服务器上核查实际硬盘状态; ```bash df -hT / du -sh $HOME/* ``` 2. 根据提示清理无用的历史记录再试一次上传新版本jar包即可恢复功能正常使用状态。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹宇飞丶

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值