如何解决(Docker) 将 Zeppelin 容器与 Hadoop 容器连接
我是 Docker 新手,但无法将 Zeppelin(容器)与 Hadoop(也在容器中)连接。
Zeppelin 容器设置:
docker run -d -p 8080:8080 -v /home/marco/zeppelin_notebooks:/opt/zeppelin/notebook --name zeppelin apache/zeppelin:'0.9.0'
和 Hadoop 设置:
docker run -it --name hadoop -p 9864:9864 -p 9870:9870 -p 8088:8088 -v "$PWD":/home/hduser/data --hostname localhost hadoop
在核心站点中我指定:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
如果我现在想从 hdfs 读取文件
%pyspark
from pyspark.sql import SparkSession
from pyspark.sql.functions import col,sum
sparkSession = SparkSession.builder.appName("Thermoplan_Analysis").getOrCreate()
df_load = sparkSession.read \
.option("sep",";") \
.option("header","true") \
.csv('hdfs://172.17.0.5:9001/afile.csv')
df_load.show(10)
我收到以下错误代码:
Py4JJavaError: An error occurred while calling o800.csv.
: java.net.ConnectException: Call From 4bb8f3c34161/172.17.0.4 to 172.17.0.5:9001 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
127.17.0.5 是来自 hadoop 的 docker 内部 IP。如果我正在尝试其他任何东西(例如 hadoop:9001 而不是 ip),它会给我一个超时或类似“java.net.UnknownHostException: hadoop”的错误。
对我来说,它看起来像是找到了容器,但是内部端口转发存在问题。但即使使用谷歌研究,我也无法找出我做错了什么。
我对如何解决这个问题的每一个提示或想法感到高兴。非常感谢!
PS:我也有问题,我可以在终端内上传文件,但不能从 WebGUI 上传。在那里我收到错误“无法上传文件 xyz.csv”。我想这有相同的问题来源...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。