zoukankan      html  css  js  c++  java
  • 解决从linux本地文件系统上传文件到HDFS时的权限问题

    当使用 hadoop fs -put localfile /user/xxx 时提示:

    put: Permission denied: user=root, access=WRITE, inode="/user/shijin":hdfs:supergroup:drwxr-xr-x

    表明:权限不够。这里涉及到两个方面的权限。一个是本地文件系统中localfile 文件的权限,一个是HDFS上 /user/xxx目录的权限。

    先看看 /user/xxx目录的权限:drwxr-xr-x   - hdfs hdfds      表示它属于hdfs用户,组名为 hdfs

    因此需要使用 sudo -u hdfs hadoop fs -put localfile /user/xxx   来指定使用 hdfs 用户来执行上传命令。

    当高兴地执行sudo -u hdfs hadoop fs -put localfile /user/xxx  以为能成功上传时,又报错:
    put: localfile   No such file or directory   说找不到本地文件localfile,可是用 ls 明明 能看到 localfile ,后来在一篇文章中发现发来是lcoalfile的权限问题。

    因为我现在是使用hdfs用户来执行命令。而hdfs用户对 localfile 是没有相关权限的。此时,问题基本解决了,就是让hdfs 用户对 lcoalfile 有相关权限

    一种简单的解决方法。直接把需要上传的文件复制到/tmp目录下。因为/tmp目录的权限为 rwxrwxrwx。然后执行:

    sudo -u hdfs hadoop fs -put localfile /user/xxx   上传成功。

  • 相关阅读:
    java前三章总结
    Java入门第二章
    MYSQL 3306设置允许外网访问
    Lnmp Laravel搭建网站需要注意的几点:
    Linux 如何删除网站目录下的user.ini
    Linux Composer的安装
    lnmp切换PHP版本
    解决GitHub的raw.githubusercontent.com无法连接问题
    Linux 7系列默认不能连网的解决办法
    lnmp安装
  • 原文地址:https://www.cnblogs.com/zwgblog/p/5901064.html
Copyright © 2011-2022 走看看