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”
应该有返回一行.
重新运行一下任务,应该不会再报错了。
分享到:
相关推荐
NULL 博文链接:https://bnmnba.iteye.com/blog/2322332
报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 https://blog.csdn.net/xiaozhaoshigedasb/article/details/88999595 防火墙记得关掉; 查看DataNode是否启动;...
hadoop的hdfs系统 开发vc++客户端使用 hadoop版本 2.6.0
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....
(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 /文件夹名
赠送jar包:hadoop-hdfs-client-2.9.1.jar 赠送原API文档:hadoop-hdfs-client-2.9.1-javadoc.jar 赠送源代码:hadoop-hdfs-client-2.9.1-sources.jar 包含翻译后的API文档:hadoop-hdfs-client-2.9.1-javadoc-...
标签:apache、hadoop、hdfs、client、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
访问HDFS 一、HDFS Shell命令 HDFS Shell命令允许使用命令行的方式在HDFS存储中进行文件夹和文件操作,包括像:文件夹的增删改查、文件的增删改查等等。 HDFS Shell命令 调用文件系统(FS)Shell命令应使用 bin/hadoop...
安装gem install webhdfs用法WebHDFS :: Client 对于客户端对象接口: require 'webhdfs'client = WebHDFS::Client.new(hostname, port)# or with pseudo username authenticationclient = WebHDFS::Client.new...
HDFS的架构是较为经典的主/从架构,在架构图中NameNode是主节点,DataNode是从节点,HDFS Client是客户端、HDFS提供了比较丰富的客户端像cli、api、gui等等支持,SecondaryNameNode作为辅助NameNode工作的一个辅助...
• HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。 • 和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。 • 不同于普通文件系统的是,HDFS中,如果一个文件...
Hadoop-HDFS.docxHadoop-HDFS.docxHadoop-HDFS.docxHadoop-HDFS.docx
主要是hdfs读写的代码分析。可依据该文档进行深入代码。
hadoop-hdfs快速入门 内容概要:HDFS是Apache Hadoop中的分布式文件系统,用于处理大规模数据集。它通过数据局部性原理减少网络传输,提高了系统效率;同时提供数据备份和自我修复机制,确保数据安全性和可靠性。 ...
每台机器都要安装java环境,我们的路径统一为“/opt/modules/jdk1.6“,并添加到系统环境变量sudo vi /etc/profile JAVA_HOME=/opt/modules/jdk1.6 PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin CLASSPATH=$JAVA_
Java操作HDFS.md
Hadoop分布式文件系统HDFS的实战,需要的Hdfs.java文件 public static void main(String[] args) throws Exception { //上传文件到hadoop uploadFile(); createFile(); createDir(); fileRename(); deleteFile...
04:HDFS分布式文件系统
其中包含Sqoop将SqlServer文件导入HDFS文件的所有jar包
The HDFS client is available as `CLIENT`. In [1]: CLIENT.list('models/') Out[1]: ['1.json', '2.json'] In [2]: CLIENT.status('models/2.json') Out[2]: { 'accessTime': 1439743128690, 'blockSize': ...