Hadoop:如何解决 docker 容器中的错误 "Could'n upload the file"

Hadoop: How can i resolve the error "Could'n upload the file" in docker container

Hadoop 在本地机器上 运行 docker-compose.yml。并尝试从 Web 上传文件到 HDFS UI,但出现以下结果:

Couldn't upload the file bar.txt

症状

尝试 1

检查发现网络调用失败。使用此引用 Open a file with webhdfs in docker container 并将以下内容添加到 services.datanode.portsdocker-compose.yml 中。但是症状是一样的。

services:
  ...

  datanode:
    ...
    ports:
      - 9864:9864

你的帮助对我会有很大的帮助。

将文件上传到 WebHDFS 需要 HTTP 重定向(首先它在 HDFS 中创建文件句柄,然后将文件上传到那个地方)。

您的主机不知道容器服务名称,因此您会看到 ERR_NAME_NOT_RESOLVED

一种可能的解决方案是编辑您的 /etc/hosts 文件以包含名称节点容器 ID 以指向 127.0.0.1,但是更好的方法是将 docker-compose exec 放入容器中一个 HDFS 客户端,以及 运行 hadoop fs -put 命令