【问题标题】:Hadoop Docker container could only be replicated to 0 nodes instead of minReplication (=1)Hadoop Docker 容器只能复制到 0 个节点而不是 minReplication (=1)
【发布时间】:2020-05-28 14:09:41
【问题描述】:

我为 Hadoop 容器尝试了不同的 docker 映像,但是当我尝试将文件写入 HDFS 时,它们都不起作用。我总是得到 错误:

原因:org.apache.hadoop.ipc.RemoteException(java.io.IOException): 文件 /t/_temporary/0/_temporary/attempt_20200528153700_0001_m_000006_7/part-00006-34c8bc6d-68a3-4177-bfbf-5f225b28c157-c000.snappy.parquet 只能复制到 0 个节点而不是 minReplication (=1)。 有 3 个数据节点正在运行,其中 3 个节点被排除在外 操作。

到目前为止我尝试了什么?

  1. 类似问题中提到的格式化 Namenode。
  2. 公开所需端口,8088、50070、9000、50010。
  3. Datanode 中已经有足够的空间。
  4. 更新了主机文件,将 127.0.0.1 映射到容器名称。

我在本地计算机上运行应用程序,Docker 容器也在本地运行。

创建基本数据框后,我正在尝试编写。

df.write.save('hdfs://hadoop-master:9000/t', format='parquet', mode='append'

花了将近 2 分钟,然后抛出错误。

WebUI 很好。我可以使用容器中的命令将文件放入 HDFS。

对我来说似乎是网络/连接问题,但找不到。

【问题讨论】:

    标签: python macos docker hadoop hdfs


    【解决方案1】:

    我没有解决问题,但找到了一个快速的解决方案。

    TL;TR

    MacOS 可能会导致此问题。

    在 GCP 上构建新的 Debian 服务器,安装 docker,它的镜像和我测试过的 Python 代码。它工作正常,但是当我尝试从本地计算机连接时仍然出现错误。

    但仍然需要一个答案,我分享给需要快速解决方案的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多