背景描述:
主机1
服务器: 192.168.14.212 用户名: cons 所属组: dcs
主机2
服务器: 192.168.14.213 用户名: cons 所属组: dcs
在主机1上新建文件212.txt,主机2上新建文件213.txt。注: 两个文件的所属用户,所属用户组一致。
主机1:
主机2:
将2个文件分别上传到hdfs,上传完成后发现两个文件所属的用户不同。
主机1的所属用户是: cons:dcs,而主机2的所属用户是: root:dcs。
主机1:
主机2:
该文件所属不同的问题可导致 主机1可在hdfs上成功删除掉 212.txt 文件,而主机2在hdfs上无法删除掉 213.txt 文件。
主机1:
主机2:
问题原因:
HDFS 会为每一个用户创建一个回收站目录: /user/用户名/.Trash/Current,每一个被用户通过 Shell 删除的文件(或目录),在系统回收站中都有一个存在周期,即当系统回收站中的文件/目录在一段时间之后没有被用户恢复的话,HDFS就会自动把该文件/目录彻底删除。之后,用户就永远找不回该文件/目录了。
由 213 主机的错误信息可知:该主机以 root 的用户删除掉 213.txt 文件,需要在 /user/root/.Trash/Current 回收站下创建文件apps/cons/wangyw/212.txt,由于没有权限操作 /user/root 节点导致删除文件失败。
为什么同样的用户cons,用户组dcs上传文件到hdfs后,文件的所属者不同?通过执行 klist 发现,两台主机Kerberos认证的 principal 不同导致。
主机1:
主机2:
可知在有Kerberos认证时,由于设定的principal不同,导致上传hdfs的文件所属用户不同。因此需要重新设定 213 的principal。
Author: wangyw
Company: ffcs
Date: 2015-11-19