有没有办法在hadoop中复制文件时保留所有权/权限?
试过hadoop fs -cp -p <src> <dest>
。没工作。
答案 0 :(得分:1)
当然可以。但是我建议您使用 distcp ,这是一种用于在集群之间或同一集群上复制数据的高级工具。选项以优化执行。此命令将运行mapreduce,因此对于较长的副本,它将花费较少的时间,并且您可以保留所有属性。
hadoop distcp /source_dir/data \
/target_dir/data
hadoop distcp /source_dir/dataA \
/source_dir/dataB \
/target_dir/
对于所有属性:
hadoop distcp -p rbugpcaxt \
/source_dir/data \
/target_dir/data
您可以在hadoop-distcp上了解有关此命令的更多信息 最重要的不是所有者和组或权限,您可以在复制命令后轻松更改它,最重要的属性是ACL,块大小,复制数和某些时候的时间戳,这是您无法更改的额外属性简单复制后(hdfs dfs -cp)。
答案 1 :(得分:-1)
没有,但您可以(假设您拥有相应的权限)在复制文件后更改所有权。
答案 2 :(得分:-1)
目前无法在复制权限时创建文件的两个副本 - 但是,根据您的使用情况,选项可能是移动文件。例如,我不得不更改文件的位置及其权限,并且还希望保留备份(权限并不重要),因此我将权限移至新位置并将其复制回原始版本。我知道这不是很有帮助,但这是我们目前在Hadoop中最好的。