我遇到的使用python hdfs api连接Hadoop发生hdfserror

做个记录,方便自己以后查看

Hadoop的Python api貌似有好几个,我一开始使用的是 hdfscli  api (hdfs api地址),在查看Hadoop目录文件没什么问题,不过上传文件、删除文件怎么都不成功,应该是身份认证的问题。在查阅了资料后,改了Hadoop的 core-site.xml hadoop-policy.xml 两个配置文件。结果还是不行,没办法,我就换成了 pyhdfs 。不过查看Hadoop文件的api我依然使用的是 hdfscli ,一开始没啥问题。但是,当我重启电脑在此连接Hadoop后,就发生了报错。代码肯定是没啥问题的,因为我也没有改动过。所以就是找不同喽。没错,就是因为之前改了core-site.xml hadoop-policy.xml 两个配置文件开启了 Service Level Authorization ,所以没有通过身份认证就无法使用api查看Hadoop文件了。

core-site.xml 中添加了如下配置,我把这个配置删了

<property>
  <name>hadoop.security.authorization</name>
  <value>true</value>
  <description>Is service-level authorization enabled?</description>
</property>

hadoop-policy.xml  中改变了如下配置

<property>
    <name>security.zkfc.protocol.acl</name>
    <value>myname</value>
    <description>ACL for access to the ZK Failover Controller
    </description>
  </property>

hadoop-policy.xml 原来配置为,设置成所有人可以访问

  <property>
    <name>security.zkfc.protocol.acl</name>
    <value>*</value>
    <description>ACL for access to the ZK Failover Controller
    </description>
  </property>

最后重启namenode以及刷新ACL配置

#重启namenode
hadoop-daemon.sh stop namenode
hadoop-daemon.sh start namenode
#刷新acl
hdfs dfsadmin -refreshServiceAcl

最后最后,最好重启一下电脑,再尝试用api连接Hadoop。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值