通过pyhdfs访问hdfs所遇到的相关问题
最近学习使用java API访问hdfs时,十分渴望用python访问,就在pycharm里import了pyhdfs,尝试访问hdfs。
一、本地虚拟机体验
vm打开,虚拟机跑起来:
1 | from pyhdfs import HdfsClient |
失败,显示了主机名称和端口号,但无法连接上。
在网上搜了下,这里需要将各主机名与ip的映射加在本地机器的hosts里,例如我使用的时win10,就在C:\Windows\System32\drivers\etc
下修改hosts。
改完后成功print出文本内容,试试copy到本地:
1 | from pyhdfs import HdfsClient |
在桌面看到1.txt,成功!
二、云端访问
这里尝试访问阿里上的hdfs时,我发现半年前我搭建的hadoop环境并不完整😥,理所当然的无法通过pyhdfs访问,如mapreduce之类的测试都跑不通,就顺便修缮了一下,下面我给出修改后的配置。
(注意,这里各主机的hosts内映射需按照“本机对应内网ip,他机对应公网ip”来填写,在本地机器中,直接填各主机的公网ip即可。)
core-site.xml:
1 | <configuration> |
yarn-site.xml
1 | <property> |
mapred-site.xml.template:
1 | <configuration> |
记得cp mapred-site.xml.template mapred-site.xml
,我在8088端口看不到进程就是忘记了它(>人<;)
还有十分重要的一点!!!
在各节点的hosts中,将这一行注释掉!
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
最后说一句,我爱python