【大数据】java API 进行集群间distCP 报错unresolvedAddressException

java distcp 遇到 java.nio.channels.unresolvedAddressException

2025-06-20 09:54:29 INF0ob:1686-TaskIdattempt 1750295366029 1356 m0000012,status :FAILED

java.io.IoException: File copy failed: hdfs://xx.xx.xx.xx:8020/warehouse/tablespace/managed/hive/xxx.db/ hdfs://xx.xx.xx.xx:8020/tmp/

org.apache.hadoop.tools.mapred.copymapper.copyFilewithRetry(copymapper.java:263)hadoop.tools.mapred.copyapper.map(copyMapper.java:220at org.apache.athadoop.tools.mapred.copyapper.map(copyMapper.java:48)org.apache.athadoop.mapreduce.Mapper.run(Mapper.java:146)org.apache.org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:799)atatorg.apache.hadoop.mapred.MapTask.run(MapTask.java:347)atorg.apache.hadoop.mapred.Yarnchild$2.run(Yarnchild.iava:174)atiava.security.Accesscontroller.doPrivileged(Native Method)atjavax security.auth.subiect.doAs(subiect.iava:422)atorg. apache. hadoop.security.UserGroupInformation.doAs(userGroupInformation. java:1730)org.apache.hadoop.mapred.Yarnchild.main(Yarnchild.iava:168)atjava.i0.IoException: couldn"td66104s 0o 0n art to webhars.7at org. apache.hadoop.tools.uti1.Retriablecommand.execute(Retriablecommand. java:101at org. apache.hadoop.tools.mapred.copymapper.copyFilewithRetry(copyMapper .java:259)1o mor eCaused by: java.nio.channels.unresolvedAddressExceptionat sun.nio.ch.Net.checkAddress(Net.java:101)sun.nio.ch.socketchannelImpl.connect(socketchannelImpl.java:622)org. apache.hadoop.net.socketIowithTimeout.connect(socketIowithTimeout. java:192)org.apache.hadoop.net.Netutils.connect(Netutils.java:531)at org.apache.hadoop.hdfs.Dfsclient.newconnectedPeer(Drsclient.java:2934)org. apache. hadoop. hdfs.client. impl.BlockReaderFactory.nextTcpPeer(BlockReaderFactory. java:821)atorg.apache.hadoop.hdfs.client.atorg.apache.

Error :

Caused by:

atatatat

impl.BlockReaderFactory.getRemoteBlockReaderFromTcp(BlockReaderFactory. java:746hadoop.hdfs.client.impl.BlockReaderFactory.build(BlockReaderFactory.java:379)

at org.apache.hadoop.hdfs.DfsInputstream.getBlockReader(DFsInputstream. java:641)

at org.apache.hadoop.hdfs.DfsInputstream.6lockseekTo(DFsInputstream. java:572)

at org.apache.hadoop.hdfs.DfsInputstream.readwithstrategy(DFsInputstream. java:754)

at org.apache.hadoop,hdfs,DfsInputstream,read(DFsInputstream.java:820)

at java.io.DataInputStream.read(DataInputstream.java:100)

org,apache,hadoop.tools.util.ThrottledInputstream.read(ThrottledInputstream. java:77)

at

at

org. apache. hadoop. tools.mapred. Retr i ableFilecopycommand.readBytes(RetriableFilecopycommand. java: 346)

问题描述:

通过java api 调用 hadoop-distcp-xxx.jar ,将集群A的文件发送至集群B时报错,unresolvedAddressException。

问题分析:

分析报错堆栈中的日志,发现关键词**.DfsInputstream.getBlockReader,**。由此推断,报错发生于客户端和namenode通信后,想访问数据节点上的块文件,却找不到数据节点的地址导致的。

排查源集群的hostname是否都在目标集群上,发现有部分数据节点的hostname没有配全。

将hostname配全后,报错消失。

另外搜了一下,发现也有一些朋友遇到了同样的问题。
https://www.cnblogs.com/yanch01/p/14046893.html

如下:

解决 java.nio.channels.UnresolvedAddressException 本地连接HDFS地址解析异常

本地调试代码,发现连接hdfs时会报地址解析异常

情况一 host没配对

Hadoop集群部署在 服务器Mi上,ip地址为10.xxx.xxx.xx

修改本地hosts,加入映射

10.xxx.xxx.xx Mi

查看服务器hostname,发现是带有domain的,为:Mi.novalocal

修改本地hosts,带上这个完整的hostname

10.xxx.xxx.xx Mi.novalocal Mi

问题解决!

情况二 host没配全

如Hadoop集群有10台hdfs DataNode节点,需要在本地全部配好hosts才行。我一开始只配了其中前8台,出现这个问题,全部配好hosts问题解决。

因为当客户端向 HDFS 发起读写请求时,NameNode 会根据目标文件的 block 存储位置返回一组相应的 datanode 节点给客户端,可以是集群中的任意节点。

例如只配了01-08机器的hosts,向hdfs上传文件时,NameNode返回了三个节点(02,05,09)要求客户端写入,但是09的host没配,就会报错

相关推荐
骑着蜗牛撵大象32710 分钟前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕13 分钟前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
roman_日积跬步-终至千里25 分钟前
零售与数仓(二):从经营问题到可信证据,数仓怎样建设?
大数据·零售
Dxy12393102161 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷1 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
云和数据.ChenGuang1 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
三无少女指南2 小时前
从这里开始:Java 后端与 AI 工程的三条阅读路线
java·学习路线·ai工程
香蕉大香蕉(06敬畏市场)2 小时前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
nice_lcj5202 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
骑着蜗牛撵大象3273 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp