分享

由 hadoop fs -put localfile /user/xxx/ 想到的一些问题

hapjin 发表于 2015-9-29 16:15:18 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 11636
我在Centos上使用Cloudera Manager 安装的CDH中的各种组件(Hive、HDFS……),然后在执行: hadoop fs -put localfiel /user/xxx 时提示权限出错:后来发现/user/xxx 目录的 superuser 为 hdfs 。参考
于是使用 sudo -u hdfs hadoop fs -put localfile /user/xxx 时提示:put: `localfile': No such file or directory   但是目录下明明有localfile 这个文件。
后面Google发现,是因为 hdfs 用户没有访问本地localfile的权限。参考
那么问题来了:是不是安装了HDFS组件之后,是不是会在本地CentOs中添加了一个用户??

[root@master cdhfive]# cat /etc/passwd | grep hdfs
hdfs:x:494:490:Hadoop HDFS:/var/lib/hadoop-hdfs:/bin/bash

安装了Hive之后,会在本地CentOs中添加了一个Hive用户??
[root@master cdhfive]# cat /etc/passwd | grep hive
hive:x:485:481:Hive:/var/lib/hive:/bin/false

总之,一直有个疑问:即HDFS上的文件/目录 所属的用户(如 hdfs),用户组(supergroup) 与CentOs操作系统中/etc/passwd 文件中的那些用户名 有联系么??
求大神解答。感激不尽。

已有(6)人评论

跳转到指定楼层
hapjin 发表于 2015-9-29 16:49:04
本帖最后由 hapjin 于 2015-9-29 17:01 编辑

sudo -u hdfs hadoop fs -put ./uploadToHDFS/oozie-examples.jar /user/xxx/
put: `./uploadToHDFS/oozie-examples.jar': No such file or directory
为什么还是不能往HDFS传东西???
[root@master cdhfive]# ll -d /home/cdhfive/uploadToHDFS/
drwxrwxr-x 2 hdfs hdfs 4096 Sep 29 16:33 /home/cdhfive/uploadToHDFS/
我uploadToHDFS目录的所属用户和属性组都已经是hdfs了。。。。

上传文件的问题已解决:uploadToHDFS目录是/home/cdhfive/的子目录。而hdfs 用户对 /home/cdhfive 没有wx 权限。故提示:put: `./uploadToHDFS/oozie-examples.jar': No such file or directory 错误。。
我把 oozie-examples.jar 复制到 /tmp目录下后,再用sudo -u hdfs hadoop fs -put ./uploadToHDFS/oozie-examples.jar /user/xxx/上传就成功了。
/tmp 目录对任何用户有rwx权限。。。。。
但我还是对本地hdfs用户和HDFS集群的supergroup 及 hdfs 用户有疑惑。请问大神有好的参考资料么???
回复

使用道具 举报

NEOGX 发表于 2015-9-29 20:40:35
本帖最后由 NEOGX 于 2015-9-29 20:42 编辑
hapjin 发表于 2015-9-29 16:49
sudo -u hdfs hadoop fs -put ./uploadToHDFS/oozie-examples.jar /user/xxx/
put: `./uploadToHDFS/oozie ...

这里面有一个默认路径的问题,写全路径,就不会出现这种问题了。
回复

使用道具 举报

hapjin 发表于 2015-9-29 21:54:10
NEOGX 发表于 2015-9-29 20:40
这里面有一个默认路径的问题,写全路径,就不会出现这种问题了。

不是默认路径的问题。。。。是待上传文件所在的路径上目录的权限问题。

回复

使用道具 举报

Alkaloid0515 发表于 2015-9-30 08:30:28
创建的系统用户,楼主在系统里能否查询到,系统里面应该有详细信息
回复

使用道具 举报

hapjin 发表于 2015-9-30 11:09:16
Alkaloid0515 发表于 2015-9-30 08:30
创建的系统用户,楼主在系统里能否查询到,系统里面应该有详细信息

你说的系统用户是指 hive hdfs 等等之类的吗???
因为我在/etc/passwd文件里面发现了一些用户名: hive 和 hdfs ....这些应该是在我安装 CDH的时候(由CM在web界面安装 )添加进/etc/passwd里面去了的吧。

所以我就有疑问,,,,/etc/passwd里面原 hive hdfs 用户 与 HDFS集群上的 /user/hive   /user/hdfs....这类用户名是不是一 一对应的

回复

使用道具 举报

Alkaloid0515 发表于 2015-9-30 11:37:32
hapjin 发表于 2015-9-30 11:09
你说的系统用户是指 hive hdfs 等等之类的吗???
因为我在/etc/passwd文件里面发现了一些用户名: hiv ...

每一个文件夹比如hive,在安装的过程中会被授予hive权限。
hdfs是同样的道理。
应该是一 一对应的,总的来说,是权限管理。防止胡乱访问
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条