hadoop copy保留所有权/权限

时间:2013-11-03 15:55:43

标签: hadoop

有没有办法在hadoop中复制文件时保留所有权/权限? 试过hadoop fs -cp -p <src> <dest>。没工作。

3 个答案:

答案 0 :(得分:1)

当然可以。但是我建议您使用 distcp ,这是一种用于在集群之间或同一集群上复制数据的高级工具。选项以优化执行。此命令将运行mapreduce,因此对于较长的副本,它将花费较少的时间,并且您可以保留所有属性。

示例:

hadoop distcp /source_dir/data \
              /target_dir/data

hadoop distcp /source_dir/dataA \
              /source_dir/dataB \
              /target_dir/

对于所有属性:

  • r:复制号
  • b:块大小
  • u:用户
  • g:组
  • p:权限
  • c:校验和类型
  • a:ACL
  • x:XAttr
  • t:时间戳记

另一个示例,但保留所有属性:

hadoop distcp -p rbugpcaxt \
              /source_dir/data \
              /target_dir/data 

您可以在hadoop-distcp上了解有关此命令的更多信息 最重要的不是所有者和组或权限,您可以在复制命令后轻松更改它,最重要的属性是ACL,块大小,复制数和某些时候的时间戳,这是您无法更改的额外属性简单复制后(hdfs dfs -cp)。

答案 1 :(得分:-1)

没有,但您可以(假设您拥有相应的权限)在复制文件后更改所有权。

答案 2 :(得分:-1)

目前无法在复制权限时创建文件的两个副本 - 但是,根据您的使用情况,选项可能是移动文件。例如,我不得不更改文件的位置及其权限,并且还希望保留备份(权限并不重要),因此我将权限移至新位置并将其复制回原始版本。我知道这不是很有帮助,但这是我们目前在Hadoop中最好的。