我为hadoop容器尝试了不同的docker映像,但当我尝试将文件写入hdfs时,它们都不起作用。我总是出错:
由以下原因引起:org.apache.hadoop.ipc.remoteexception(java.io.ioexception):文件/t/\u temporary/0/\u temporary/attempt\u 20200528153700\u 0001\m\u000006\u 7/part-00006-34c8bc6d-68a3-4177-bfbf-5f225b28c157-c000.snappy.parquet只能复制到0节点,而不是minreplication(=1)。有3个datanode正在运行,此操作中排除了3个节点。
到目前为止我试过什么?
类似问题中提到的格式化namenode。
暴露所需端口,8088、50070、9000、50010。
datanode中已有足够的空间。
更新了主机文件,将127.0.0.1Map到容器名称。
我在本地计算机上运行应用程序,docker容器也在本地计算机上运行。
在创建了基本的dataframe之后,我正在尝试编写。
df.write.save('hdfs://hadoop-master:9000/t', format='parquet', mode='append'
差不多花了2分钟,然后抛出错误。
webui很好。我可以用容器中的命令将文件放入hdfs。
对我来说,似乎是网络/连接问题,但找不到。
1条答案
按热度按时间nbnkbykc1#
我没有解决问题,但很快找到了解决办法。
热释光;tr公司
macos可能会导致此问题。
在gcp上构建了新的debian服务器,安装了docker,它的图像和python代码。它工作得很好,但当我尝试从我的本地机器连接时仍然会出错。
但仍然需要一个答案,我分享给需要快速解决方案的人。