保留所有权/权限的hadoop拷贝

li9yvcax  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(444)

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

sxissh06

sxissh061#

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

epggiuax

epggiuax2#

当然可以。但我建议您使用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:前交叉韧带
x:xattr公司
t:时间戳

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

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

您可以在hadoop distcp上阅读更多关于这个命令最重要的不是所有者和组或权限,您可以在copy命令之后轻松地更改它,最重要的属性是acl、块大小、复制编号,有时还有时间戳,这些是额外的属性,您在简单复制(hdfs dfs-cp)之后无法轻松地更改。

uqxowvwt

uqxowvwt3#

当前不可能在复制权限时创建文件的两个副本——但是,根据您的用例,可以选择移动文件。例如,我不得不更改一个文件的位置及其权限,还想保留一个备份(权限无关紧要),所以我带着权限移动到新位置,并复制回原始位置,而不带任何权限。我知道这不是很有帮助,但这是我们目前在hadoop中最好的。

相关问题