在hadoop中复制文件时有什么方法可以保留所有权/权限?试过了hadoop fs -cp -p <src> <dest>
。没用。
问问题
3187 次
3 回答
3
是的,当然可以。但我建议您使用distcp,它是一种在集群之间或同一集群上复制数据的高级工具,您有很多选项可以优化执行。此命令将运行 mapreduce,因此对于长副本将花费更少的时间,并且您可以保留所有属性。
例子:
hadoop distcp /source_dir/data \
/target_dir/data
hadoop distcp /source_dir/dataA \
/source_dir/dataB \
/target_dir/
对于所有属性:
- r:复制数
- b:块大小
- 你:用户
- g:组
- p: 许可
- c:校验和类型
- 一:访问控制列表
- x: XAttr
- t:时间戳
另一个示例,但保留所有属性:
hadoop distcp -p rbugpcaxt \
/source_dir/data \
/target_dir/data
您可以在hadoop-distcp上阅读有关此命令的更多信息 。最重要的不是所有者和组或权限,您可以在复制命令后轻松更改,最重要的属性是 ACL、块大小、复制数和一些时间时间戳,这是额外的属性,您在简单复制后无法轻易更改(hdfs dfs -cp)。
于 2018-10-11T08:44:17.223 回答
-1
没有,但您可以(假设您有适当的权限)在复制文件后更改所有权。
于 2013-11-03T23:07:30.223 回答
-1
目前无法在复制权限时创建文件的两个副本——但是,根据您的用例,一个选项可能是移动文件。例如,我不得不更改文件的位置及其权限,并且还想保留备份(权限无关紧要),因此我将权限移至新位置并复制回原始位置而没有。我知道这不是很有帮助,但这是我们目前在 Hadoop 中拥有的最好的。
于 2015-08-20T01:38:51.073 回答