上传到hdfs文件所属问题

原创 2015年11月19日 15:04:57

背景描述:

主机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




上传本地文件到hdfs

import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apac...
  • caosena5101
  • caosena5101
  • 2016年12月19日 17:33
  • 232

将linux本地文件夹上传到hdfs服务器

import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java...
  • gywtzh0889
  • gywtzh0889
  • 2016年07月26日 16:25
  • 677

HDFS中的文件访问权限

针对文件和目录,HDFS有与POSIX(可移植操作系统界面)非常相似的权限模式。 一共提供三类权限模式:只读权限(r),写入权限(w)和可执行权限(x)。读取文件或列出目录内容时需要只...
  • uniquewonderq
  • uniquewonderq
  • 2016年02月06日 10:19
  • 1524

Linux上传本地文件到HDFS

上一篇文章记录了如何使用java代码将本地文件上传到HDFS中,之后我又尝试了直接使用Linux命令上传文件,过程如下。 su hdfs //切换到HDFS用户 ...
  • tanqu9315
  • tanqu9315
  • 2018年01月15日 16:02
  • 148

hdfs命令上传整个文件夹

hadoop dfs -put /home/root/apache-hive-1.2.1-bin/lib/ /home/root/apache-hive-1.2.1-bin/将lib整个文件夹包括文件...
  • iamlihongwei
  • iamlihongwei
  • 2017年02月09日 13:40
  • 2660

实现一次将多个文件上传到hdfs

实现一次将多个文件上传到hdfs
  • kezhong_wxl
  • kezhong_wxl
  • 2017年08月02日 11:47
  • 416

多个Flume合并一个channel上传文件到Hdfs

利用flume收集各个web服务器的日志文件(这里是tomcat的日志文件)上传到hdfs tomcat日志文件每一份中生成一次 flmue收集数据上传到hdfs  ---------------...
  • w511913253
  • w511913253
  • 2015年12月13日 18:44
  • 1027

flume上传文件到hdfs上

在第一篇文章中我们是将log4j的日志输出到了agent的日志文件当中。配置文件如下: [plain] view plaincopy tier1.sources=source1...
  • wackycrazy
  • wackycrazy
  • 2015年07月19日 18:59
  • 1197

flume sink到hdfs第一列是时间戳,怎么去掉

flume sink到hdfs第一列是时间戳,怎么去掉?如下 1492665578789  111 1492665580789  222 1492666625916  qqqq 149266445...
  • xinhu_li0104
  • xinhu_li0104
  • 2017年10月09日 21:53
  • 167

hadoop生态系统学习之路(三)java实现上传文件(本地或ftp)至hdfs

在上一篇博文中,我们讲了如何编写、运行、测试一个MR,但是hdfs上的文件是手动执行命令从本地linux上传至hdfs的。在真实的运行环境中,我们不可能每次手动执行命令上传的,这样太过繁琐。那么,我们...
  • qiyongkang520
  • qiyongkang520
  • 2016年03月28日 23:40
  • 2884
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传到hdfs文件所属问题
举报原因:
原因补充:

(最多只允许输入30个字)