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
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"是静态或导入库,供编译器在链接...
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 /文件夹名
报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 https://blog.csdn.net/xiaozhaoshigedasb/article/details/88999595 防火墙记得关掉; 查看DataNode是否启动;...
同时,HDFS支持校验和来确保数据完整性,防止在传输过程中出现错误。 总结来说,HDFS的读写流程涉及客户端、NameNode和DataNode之间的复杂交互,包括元数据查询、数据流的处理、故障恢复和数据冗余策略。理解这一...
Table or view 'stu' not found in database 'default'; 分析:确实没有临时表View,并且没有开启Hive支持 解决:开启Hive支持 val spark: SparkSession = SparkSession.builder() .appName(SparkUtils) .master...
HDFS架构原理 HDFS(Hadoop Distributed File System)是一种分布式文件系统,基于Google发布的GFS论文设计开发。HDFS具有高容错、高吞吐量、大文件存储等特性,适合大文件存储、流式数据访问等场景,但不适合大量...
在这个"Sqoop-sqlserver-hdfs.rar"压缩包中,我们有两个关键文件:sqljdbc.jar和sqoop-sqlserver-1.0.tar.gz,它们是实现SQL Server到HDFS数据迁移的关键组件。 首先,`sqljdbc.jar`是Microsoft提供的Java驱动程序...
### 使用Java API访问HDFS文件的关键知识点 #### 一、HDFS概述 Hadoop Distributed File System(HDFS)是Apache Hadoop项目的核心组件之一,它为海量数据提供了高吞吐量的数据访问,非常适合大规模数据集的应用...
hadoop配置运行错误解决方法 hadoop是一个大数据处理的基础架构,但是在实际使用过程中经常会碰到各种各样的问题,以下是解决hadoop配置运行错误的一些经验总结: 一、hadoop集群在namenode格式化后重启集群会出现...
《大数据平台构建:深入理解HDFS架构》 大数据技术的核心之一是分布式文件系统,而Hadoop Distributed File System(HDFS)则是其中的杰出代表。HDFS以其高容错性、可扩展性和高效的数据处理能力,成为了大数据存储...
1. HDFS Client:文件切分、文件上传、与NameNode交互、与DataNode交互、命令管理HDFS。 2. NameNode:master,管理HDFS的名称空间、管理数据块映射信息、配置副本策略、处理客户端读写请求。 3. DataNode:Slave,...
赠送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-...
在构建大数据平台的过程中,Hadoop 分布式文件系统(HDFS)是核心组件之一,它提供了高容错性、高可扩展性和高吞吐量的数据存储能力。HDFS Shell 是与HDFS交互的一种命令行工具,它使得用户可以通过类似于Unix Shell...
本项目“Java-Operate-HDFS.zip_hdfs”提供了使用Java API操作HDFS的示例,帮助开发者理解如何在Java应用程序中与HDFS进行交互。下面将详细介绍HDFS的基本概念以及如何通过Java进行操作。 1. HDFS简介: HDFS是...
hdfs.copyFromLocalFile(src, dst); } } ``` 这个程序使用 HDFS API 将本地文件上传到 HDFS。首先,它创建了一个 Configuration 对象,然后使用 FileSystem.get() 方法获取 HDFS 文件系统的实例。接着,它使用 ...