【问题标题】:Permissions error on webhdfswebhdfs上的权限错误
【发布时间】:2013-09-27 13:56:38
【问题描述】:

我正在努力使用 Hadoop 的 HDFS 的 REST 接口作为通过网络存储文件的便捷方式。为了测试,我按照以下说明在我的 mac (10.8.5) 上安装了 hadoop:

http://importantfish.com/how-to-install-hadoop-on-mac-os-x/

这就像一个魅力,我能够启动 hadoop 并运行基本测试:

hadoop-examples-1.1.2.jar pi 10 100

现在,我正在使用 python 客户端来处理与 webhdfs 之间的 HTTP 请求:

http://pythonhosted.org/pywebhdfs/

但是当我尝试创建目录时遇到了一个基本权限错误:

from pywebhdfs.webhdfs import PyWebHdfsClient  
hdfs = PyWebHdfsClient()  
my_dir = 'user/hdfs/data/new_dir'  
hdfs.make_dir(my_dir, permission=755)  

回溯(最近一次通话最后一次):
文件“”,第 1 行,在
文件“/Library/Python/2.7/site-packages/pywebhdfs/webhdfs.py”,第 207 行,在 make_dir
_raise_pywebhdfs_exception(response.status_code, response.text)
文件“/Library/Python/2.7/site-packages/pywebhdfs/webhdfs.py”,第 428 行,在 _raise_pywebhdfs_exception
引发错误.PyWebHdfsException(msg=message)
pywebhdfs.errors.PyWebHdfsException: {"RemoteException":{"exception":"AccessControlException","javaClassName":"org.apache.hadoop.security.AccessControlException","message":"Permission denied: user=webuser, access=写,inode=\"user\":mlmiller:supergroup:rwxr-xr-x"}}

我还尝试将用户指定为“hdfs”,而不是 python 库默认为“webhdfs”,但得到相同的结果。读了 30 分钟后,我放弃了,意识到我不了解 hdfs 用户、hadoop 安全性(我在安装说明后启用)以及我的 unix 用户和权限之间的相互作用。

【问题讨论】:

    标签: python hdfs webhdfs


    【解决方案1】:

    您需要让 PyWebHdfsClient 用户名与对您尝试写入的目录具有权限的 unix 用户匹配。启动namenode服务的用户默认是“超级用户”

    我编写了您正在使用的 pywebhdfs 客户端,以满足工作需要。如果您有任何问题或想询问客户端本身的功能,请在 github 上留下问题,我可以解决。

    https://github.com/ProjectMeniscus/pywebhdfs/issues

    谢谢

    【讨论】:

      【解决方案2】:

      在离开并阅读更多文档后想通了这一点。 webdhfs 希望您指定一个与从 shell 启动 hdfs 的 unix 用户匹配的用户值。所以正确的python是:

      from pywebhdfs.webhdfs import PyWebHdfsClient  
      user = <specify_linux_user_who_launched_hadoop>
      hdfs = PyWebHdfsClient(user_name=user)  
      my_dir = '%s/data/new_dir' % user  
      hdfs.make_dir(my_dir, permission=755)  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-16
        • 2019-08-09
        • 2019-01-18
        • 1970-01-01
        • 2020-08-16
        • 2011-12-28
        • 2014-05-18
        • 2023-03-21
        相关资源
        最近更新 更多