hadoop 运行任务的时候突然报错:
java.io.IOException: Bad connect ack with firstBadLink 192.168.1.11:50010
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.createBlockOutputStream(DFSClient.java:2903)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2826)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2000(DFSClient.java:2102)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2288)
某次运行一个任务时,报出了以下的错误提示:
10/12/10 21:09:05 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad connect ack with firstBadLink 10.1.73.148:50010
10/12/10 21:09:05 INFO hdfs.DFSClient: Abandoning block blk_3623545154924652323_87440
10/12/10 21:09:11 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.ConnectException: Connection refused
10/12/10 21:09:11 INFO hdfs.DFSClient: Abandoning block blk_-4726571439643867938_87441\
原因
错误提示中包含了任务跟踪/数据节点机器的IP地址(10.1.73.148)。出现错误的原因是这台机器上的数据节点的守护进程没有在运行;通过登录这个机器确认错误,例子中的机器是10.1.73.148。所以运行一下命令:ps -eaf | grep “DataNode” | grep -v “grep”,如果没有任何返回,那么一位着数据节点的守护进程没有运行。
如果发生在这台机器10.1.73.148,原因是运行的任务要求包含了某数据块。如果这个数据块有复本在其他机器上,并且其他机器正运行着数据节点的守护进程,那么这个就不是问题了,Hadoop将会从其他机器上获取数据块,然后继续执行任务,但如果其他任何机器上没有该数据块可用,那么任务就会失败。
解决方法
登录到10.1.73.148,运行如下命令:
hadoop-daemon.sh start datanode
以上命令会启动10.1.73.148上数据节点的守护进程。重复确认我运行的命令:
ps -eaf | grep “DataNode” | grep -v “grep”
应该有返回一行.
重新运行一下任务,应该不会再报错了。
分享到:
相关推荐
分布式存储系统:HDFS:HDFS高级特性:HA.docx
分布式存储系统:HDFS:HDFS高级特性:Federation.docx
史上最全大数据技术全套教程,包括: 分布式存储系统 大数据基础 大数据处理框架 大数据管理与监控 实时计算 数据仓库 数据分析工具 数据湖 数据集成工具 消息队列 等流行技术的系列教程
NULL 博文链接:https://bnmnba.iteye.com/blog/2322332
分布式存储系统:HDFS:HDFS性能调优.docx
分布式存储系统:HDFS:HDFS安全机制.docx
分布式存储系统:HDFS:HDFS高级特性:ErasureCoding.docx
5. 文件夹操作:可以使用 `hdfs dfs -mkdir` 命令创建文件夹,使用 `hdfs dfs -rmdir` 命令删除文件夹。 四、HDFS 的 Shell 命令 HDFS 的 Shell 命令有很多,常用的命令包括: 1. `hdfs dfs -ls`:列出文件夹的...
分布式存储系统:HDFS:HDFS数据块管理.docx
分布式存储系统:HDFS:HDFS数据存储机制.docx
分布式存储系统:HDFS:HDFS架构与原理.docx
在你的需求中,"hdfs.dll"和"hdfs.lib"是与Hadoop HDFS相关的库文件,它们用于在Windows环境下用C++开发HDFS客户端。"hdfs.dll"是动态链接库,包含了HDFS的运行时功能,而"hdfs.lib"是静态或导入库,供编译器在链接...
9000 fs.defaultFS,如:hdfs://172.25.40.171:9000 9001 dfs.namenode.rpc-address,DataNode会连接这个端口 50070 dfs.namenode.http-address 50470 dfs.namenode.https-address 50100 dfs.namenode.backup....
分布式存储系统:HDFS:HDFS容错与恢复机制.docx
分布式存储系统:HDFS:HDFS数据流读取流程.docx
(6)移动hdfs文件:hdfs dfs -mv /hdfs路径 /hdfs路径 (7)复制hdfs文件:hdfs dfs -cp /hdfs路径 /hdfs路径 (8)删除hdfs文件:hdfs dfs -rm /文件名 (9)删除hdfs文件夹:hdfs dfs -rm -r /文件夹名
报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 https://blog.csdn.net/xiaozhaoshigedasb/article/details/88999595 防火墙记得关掉; 查看DataNode是否启动;...
分布式存储系统:HDFS:HDFS生态系统:Hadoop工具与应用.docx
分布式存储系统:HDFS:HDFS命名空间管理技术教程.docx