错误:hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad connect ack with firstBadLink
某次运行一个任务时,报出了以下的错误提示:
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”
应该有返回一行.
重新运行一下任务,应该不会再报错了。
分享到:
相关推荐
报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 https://blog.csdn.net/xiaozhaoshigedasb/article/details/88999595 防火墙记得关掉; 查看DataNode是否启动;...
5. 文件夹操作:可以使用 `hdfs dfs -mkdir` 命令创建文件夹,使用 `hdfs dfs -rmdir` 命令删除文件夹。 四、HDFS 的 Shell 命令 HDFS 的 Shell 命令有很多,常用的命令包括: 1. `hdfs dfs -ls`:列出文件夹的...
在你的需求中,"hdfs.dll"和"hdfs.lib"是与Hadoop HDFS相关的库文件,它们用于在Windows环境下用C++开发HDFS客户端。"hdfs.dll"是动态链接库,包含了HDFS的运行时功能,而"hdfs.lib"是静态或导入库,供编译器在链接...
本项目“Java-Operate-HDFS.zip_hdfs”提供了使用Java API操作HDFS的示例,帮助开发者理解如何在Java应用程序中与HDFS进行交互。下面将详细介绍HDFS的基本概念以及如何通过Java进行操作。 1. HDFS简介: HDFS是...
这里我们关注的是Hadoop在Windows 32位环境下的运行组件,包括`hadoop.dll`、`winutils.exe`和`hdfs.dll`,这些都是针对32位(x86)Windows系统特别优化的版本。这些组件是Hadoop在Windows环境下正常工作所必需的,...
在这个"Sqoop-sqlserver-hdfs.rar"压缩包中,我们有两个关键文件:sqljdbc.jar和sqoop-sqlserver-1.0.tar.gz,它们是实现SQL Server到HDFS数据迁移的关键组件。 首先,`sqljdbc.jar`是Microsoft提供的Java驱动程序...
本教程将详细讲解如何使用Java语言与HDFS进行交互,包括将本地文件上传到HDFS以及从HDFS下载文件。 首先,你需要在Java项目中引入Hadoop的相关依赖。Hadoop提供了Java API,使得开发人员能够方便地操作HDFS。通常,...
5. `hadoop-hdfs.jar`:HDFS 的具体实现,包括客户端和服务器端的类库。 6. `hadoop-auth.jar`:Hadoop 认证库,用于处理安全认证和授权。 7. `libthrift-0.x.jar`:Thrift 库,Flume 使用 Thrift 协议与 HDFS 进行...
在 `/opt/flume/conf` 目录下,我们创建一个名为 `hdfs.conf` 的配置文件。配置文件的基本结构如下: ```properties # 配置文件开头 agentName.sources = sourceName agentName.sinks = sinkName agentName....
1、hadoop-root-datanode-master.log 中有如下错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in导致datanode启动不了。原因:每次namenode format...
Java操作HDFS(Hadoop Distributed File System)是大数据领域中常见的任务,特别是在处理大规模数据时。HDFS是一个分布式文件系统,由Apache Hadoop项目开发,它设计为在廉价硬件上运行,提供高吞吐量的数据访问。...
在本实验中,我们将深入探讨Hadoop的安装过程及其核心组件HDFS(Hadoop Distributed File System)的基础操作。Hadoop是大数据处理领域的基石,尤其在云计算环境中,它扮演着至关重要的角色。通过学习Hadoop,我们...
Hadoop分布式文件系统HDFS的实战,需要的Hdfs.java文件 public static void main(String[] args) throws Exception { //上传文件到hadoop uploadFile(); createFile(); createDir(); fileRename(); deleteFile...
`hdfs.path`是HDFS的保存路径,`fileType`和`writeFormat`分别指定了文件类型和写入格式,这里选择的是文本格式。 完成配置后,启动Flume任务,可以通过命令行工具监控文件内容的变化。当有新的文件或文件内容更新...
1. 删除所有节点的数据文件:删除所有节点的dfs.data.dir和dfs.tmp.dir目录(默认为tmp/dfs/data和tmp/dfs/tmp)下的数据文件。 2. 格式化namenode:重新使用bin/hadoop namenode -format命令格式化namenode。 3. ...
HDFS.jl 包装了 HDFS C 库libhdfs并提供类似于 Julia Filesystem API 的 API,可用于直接访问 HDFS 文件。 类型 文件系统 保存文件系统的句柄以及连接规范(主机、端口和用户名)。 它可以从对hdfs_connect的调用中...
a3.sinks.k6.hdfs.path=hdfs://NNHA1/song/test3/20%y%m%d/%Y%m%d%H a3.sinks.k6.hdfs.writeFormat=Text a3.sinks.k6.hdfs.filePrefix=access_log a3.sinks.k6.hdfs.maxOpenFiles=5000 a3.sinks.k6.hdfs....
Java操作HDFS.md
NULL 博文链接:https://bnmnba.iteye.com/blog/2322332