Hadoop put 命令抛出 - 只能复制到 0 个节点,而不是 1 个

2024-04-05

我是 Hadoop 新手,我正在尝试在我的 ubuntu 机器上进行伪分布式模式设置,并面临以下问题hadoop put命令。我的配置详细信息可以在这篇文章中找到-->命令“hadoop namenode -format”会做什么 https://stackoverflow.com/questions/27143409/what-the-command-hadoop-namenode-format-will-do

现在我尝试使用以下命令将一些文件添加到 HDFS:

hadoop fs –mkdir /user/myuser

hadoop fs -lsr /

$ ./hadoop fs -lsr /
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:04 /tmp
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:04 /tmp/hadoop-myuser
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:04 /tmp/hadoop-myuser/dfs
-rw-r--r--   1 myuser supergroup          0 2014-11-26 16:04 /tmp/hadoop-myuser/dfs/name
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:04 /tmp/hadoop-myuser/mapred
drwx------   - myuser supergroup          0 2014-11-26 16:12 /tmp/hadoop-myuser/mapred/system
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:04 /user
drwxr-xr-x   - myuser supergroup          0 2014-11-26 16:06 /user/myuser

现在我正在运行put命令但出现这样的异常:

$ ./hadoop fs -put example.txt .
14/11/26 16:06:19 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/myuser/example.txt could only be replicated to 0 nodes, instead of 1
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1920)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:783)
    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426)

    at org.apache.hadoop.ipc.Client.call(Client.java:1113)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
    at com.sun.proxy.$Proxy1.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
    at com.sun.proxy.$Proxy1.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3720)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3580)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2783)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:3023)

14/11/26 16:06:19 WARN hdfs.DFSClient: Error Recovery for null bad datanode[0] nodes == null
14/11/26 16:06:19 WARN hdfs.DFSClient: Could not get block locations. Source file "/user/myuser/example.txt" - Aborting...
put: java.io.IOException: File /user/myuser/example.txt could only be replicated to 0 nodes, instead of 1
14/11/26 16:06:19 ERROR hdfs.DFSClient: Failed to close file /user/myuser/example.txt
org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/myuser/example.txt could only be replicated to 0 nodes, instead of 1
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1920)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:783)
    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426)

    at org.apache.hadoop.ipc.Client.call(Client.java:1113)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
    at com.sun.proxy.$Proxy1.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
    at com.sun.proxy.$Proxy1.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3720)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3580)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2783)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:3023)

有人可以帮我如何解决这个问题吗?

问题解决方案:

根据提供的答案,我可以通过以下步骤解决该问题:

1)停止所有服务:

./stop-all.sh

2)删除数据目录:

rm -rf /tmp/hadoop-myuser/dfs/data/

3)启动服务:

./start-all.sh

4)然后将文件放入HDFS:

./hadoop fs -put example.txt .

这是由于数据节点问题造成的。启动你的数据节点并立即进行操作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop put 命令抛出 - 只能复制到 0 个节点,而不是 1 个 的相关文章

随机推荐

  • 检查字母数字字符并从 HTML 表单获取输入

    我对 Perl 编程相当陌生 有几个似乎无法解决的编译问题 我的程序从这个 HTML 表单获取输入 问题 我的表单应该使用 post 方法还是 get 方法
  • 使用VS2008和Office2007将Excel转换为PDF

    我正在尝试使用 Interop Excell 将 Excel 工作簿另存为 PDF 文件 我使用的是VS2008和Office2007 并从Microsoft下载并安装了SaveAsPDFandXPS exe 这使我能够使用以下代码将 Wo
  • 如何反序列化包含无效字段名称的 JSON 对象

    我有一个 JSON 请求 其结构如下 formats flash embed http a3 vikiassets com assets vikiplayer 922746a667cfd38137a7e45df6ba1b95 swf aut
  • 密钥库操作失败:填充模式不兼容

    我正在使用 AndroidKeystore 生成 RSA 密钥对并使用该密钥对进行加密和解密 我的密钥对生成代码如下所示 var keypairGen KeyPairGenerator KeyPairGenerator getInstanc
  • CSS3“曲面”3D 变换/透视帮助

    我正在尝试为我的网站创建一种有观点的人群 它实际上是一个充满平面图像的 ul 我想创建一种 弯曲 的感觉 就像圆形的人群一样 它向内并且向内明显变小 并向末端弯曲 海报圈的例子是我能找到的最接近的http www webkit org bl
  • 如何从java通过hdfs协议访问hadoop?

    我找到了一种通过以下方式连接到hadoop的方法hftp 并且工作正常 只读 uri hftp 172 16 xxx xxx 50070 System out println uri uri Configuration conf new C
  • 如何检查 Bash 中是否存在某些文件?

    In a bash脚本 我必须检查多个文件是否存在 我知道一种尴尬的方法 如下所示 但这意味着我的主程序必须位于那个丑陋的嵌套结构中 if f FILE1 then if f FILE2 then echo OK MAIN PROGRAM
  • Python: type(i) 是 int...但 i 是 int = False

    我很确定我在做一些愚蠢的事情 但不知道那是什么 predict fn abc data In 3 predict Out 3 array 2 In 4 type predict Out 4 numpy ndarray 现在用以下内容包装我的
  • 当父div在屏幕上不可见时,jQuery UI位置函数问题

    我在 jQuery UI Position 函数方面遇到了一个奇怪的问题 有一个父 div 大于屏幕高度 其中还有另一个小 div 我的函数告诉小 div 位于其父级的底部 当底部可见时 一切正常 但是当由于窗口大小而导致底部不可见时 位置
  • Java 中函数指针最接近的替代品是什么?

    我有一个大约十行代码的方法 我想创建更多的方法来完成完全相同的事情 除了将更改一行代码的小计算之外 这是一个完美的应用程序 用于传递函数指针来替换该行 但 Java 没有函数指针 我最好的选择是什么 匿名内部类 假设你想要一个带有 a 的函
  • 使用node-sass查看所有子目录

    我见过很多使用以下命令观看特定文件夹的示例node sass 但我的 css 并不都在同一个文件夹中 我想让它像你一样监视所有子目录中的 scss 文件onchange 仅举个例子 我假设语法类似于 node sass w app scss
  • 在两个 NodeJS 微服务之间共享自定义代码

    我正在为该应用程序创建 Web 应用程序和微服务 并且两者都需要使用 Sequelize 创建相同的数据库模型 使用 NodeJS 处理此任务的方法是什么 我正在考虑创建我的数据库模型的单独模块并将其保存在私有 git 中 并将此私有 gi
  • Citrix 服务器是否支持 WebView2

    我们有一个来自第三方的应用程序 它需要WebView2 按照说明在我们的机器上安装了 WebView2 它在我们的桌面上运行良好 我们在Citrix服务器中以完全相同的方式安装 但它不起作用 知道 Citrix 服务器是否支持 WebVie
  • Flutter - 获取唯一设备 ID

    我正在制作一个带有基于令牌的系统的应用程序 因此 用户可以购买代币并使用它们进行一些操作 使用电子邮件和密码创建帐户后 每个用户免费获得 10 个代币 作为试用版 我想防止该用户每次都获得一个新帐户来获得另外 10 个令牌 我想知道 And
  • 如何注入ApplicationContext本身

    我想注射一个ApplicationContext本身就是一颗豆子 就像是 public void setApplicationContext ApplicationContect context this context context 春
  • 如何在 bash 中构建条件赋值?

    我正在寻找一种在 bash 中构建条件分配的方法 在 Java 中它看起来像这样 int variable condition 1 0 如果您想要一种在 shell 脚本中定义默认值的方法 请使用如下代码 VAR default 是的 该行
  • Docker compose 指定镜像与 Dockerfile

    我是新来的docker compose阅读完文档后 我仍然有一些不清楚的事情浮现在我的脑海中 到目前为止 当我使用 docker 时 我将构建保存在以下目录树中 builds Service A Dockerfile ServiceA ja
  • 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)

    我在 Python 和 C 中使用 OpenCV 完成了图像变形 看到可口可乐徽标在我选择的角落变形 使用以下图像 和这个 完整专辑 包含过渡图片和说明 https i stack imgur com 40pdD jpg 我确实需要这样做
  • ASP.NET Identity EF 中的动态用户声明

    我正在开发一个使用 ASP NET Identity 和 Entity Framework 的身份验证系统 并且我希望有一些声明是计算值 而不是硬编码到声明表中 当用户登录时 如何将动态声明添加到该登录会话而不实际将其添加到声明表中 例如
  • Hadoop put 命令抛出 - 只能复制到 0 个节点,而不是 1 个

    我是 Hadoop 新手 我正在尝试在我的 ubuntu 机器上进行伪分布式模式设置 并面临以下问题hadoop put命令 我的配置详细信息可以在这篇文章中找到 gt 命令 hadoop namenode format 会做什么 http