写入HDFS只能复制到0个节点而不是minReplication(= 1)
我有3个数据节点正在运行,而在运行作业时我得到以下错误,
java.io.IOException:File / user / ashsshar / olhcache / loaderMap9b663bd9只能复制到0个节点而不是minReplication(= 1)。 运行中有3个数据节点,此操作中排除了3个节点。 在org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1325)
此错误主要发生在我们的DataNode实例空间不足或DataNode未运行时。 我尝试重新启动DataNodes但仍然遇到相同的错误。
我的集群节点上的dfsadmin -reports清楚地显示了大量可用空间。
我不确定为什么会这样。
1.停止所有Hadoop守护进程
for x in `cd /etc/init.d ; ls hadoop*` ; do sudo service $x stop ; done
2.从/var/lib/hadoop-hdfs/cache/hdfs/dfs/name
删除所有文件
Eg: devan@Devan-PC:~$ sudo rm -r /var/lib/hadoop-hdfs/cache/
3.Format Namenode
sudo -u hdfs hdfs namenode -format
4.启动所有Hadoop守护进程
for x in `cd /etc/init.d ; ls hadoop*` ; do sudo service $x start ; done
停止所有Hadoop服务
我遇到了同样的问题,我的磁盘空间非常低。 释放磁盘解决了它。
- 检查您的DataNode是否正在运行,使用命令:
jps
。 - 如果它没有运行等待某个时间并重试。
- 如果它正在运行 ,我认为你必须重新格式化你的DataNode。
发生这种情况时我通常会做的是,我转到tmp / hadoop-username / dfs /目录并手动删除数据和名称文件夹(假设您在Linux环境中运行)。
然后通过调用bin / hadoop namenode -format来格式化dfs(确保在询问是否要格式化时使用大写Y进行回答;如果没有询问,则再次重新运行该命令)。
然后,您可以通过调用bin / start-all.sh再次启动hadoop
非常简单的修复Windows 8.1上的相同问题
我使用的是Windows 8.1操作系统和Hadoop 2.7.2,做了以下事情来解决这个问题。
- 当我启动hdfs namenode -format时,我注意到我的目录中有一个锁。 请参考下图。
- 一旦我删除了如下所示的完整文件夹,我再次执行了hdfs namenode -format。
- 执行上述两个步骤后,我可以成功将所需文件放入HDFS系统。 我使用start-all.cmd命令启动yarn和namenode。
我有这个问题,我解决了它如下:
-
找到您的datanode和namenode元数据/数据保存在哪里; 如果你找不到它,只需在mac上执行此命令即可找到它(位于名为“tmp”的文件夹中)
find / usr / local / Cellar / -name“tmp”;
find命令是这样的:find <“directory”> -name <“该目录或文件的任何字符串线索”>
-
找到该文件后,cd进去。 在/ usr /本地/酒窖//的Hadoop / HDFS / tmp目录
然后cd到dfs
然后使用-ls命令查看数据和名称目录位于那里。
-
使用remove命令删除它们:
rm -R数据。 和rm -R名称
-
如果您还没有完成,请转到bin文件夹并结束所有内容:
sbin目录/ end-dfs.sh
-
退出服务器或localhost。
-
再次登录服务器:ssh <“server name”>
-
启动dfs:
sbin目录/ start-dfs.sh
-
格式化namenode以确保:
bin / hdfs namenode -format
-
您现在可以使用hdfs命令将数据上传到dfs并运行MapReduce作业。
- 使用MultithreadMapper替换Mapper时,键入地图中的键不匹配
- 寻找java.util.Map的替代品
- OpenCV库加载了hadoop但没有工作
- 如何阅读hadoop顺序文件?
- Hadoop:无法使用Jps命令
- 使用Hadoop分布式缓存时出现FileNotFoundException
- 如何在Hadoop MapReduce中将Object设置为Map输出的值?
- 关闭tomcat服务器时无法加载org.apache.hadoop.util.ShutdownHookManager
- 使用hadoop运行jar时的NoSuchMethodError Sets.newConcurrentHashSet()