gpt4 book ai didi

hadoop - HDFS 到 HDFS 完全强制移动文件

转载 作者:可可西里 更新时间:2023-11-01 15:00:18 28 4
gpt4 key购买 nike

据我所知,在从一个 HDFS 位置移动到另一个位置时,没有直接选项可以覆盖 HDFS 中的文件,复制 cp 可以选择强制执行。我试图找出是否有任何黑客可以做到这一点?

我们能做的是 hdfs dfs -cp -f/hdfs/location1/hdfs/location2 而不是 hdfs dfs -mv -f/hdfs/location1//hdfs/location2/

实现我的目的的一种方法是先执行 hdfs dfs -cp -f/hdfs/location1/hdfs/location2,然后使用 hdfs dfs - 删除 location1 文件 - rm -r/hdfs/location1 但出于某种原因我不想这样做。任何其他使用一个命令的方法都适用。

提前致谢!!

最佳答案

不是一个命令,而是一个解决方法:

为了合并 HDFS 中的文件夹,我为此实现了一个解决方案,因为 cp 与数据节点上的物理数据交互,而 mv 仅更改名称节点上的元数据。

for i in $(hdfs dfs -ls -R ${hdfs_src_dir} | grep "^-" | awk '{print $8}'); do
i_dir=$(dirname "${i}")
target_dir=${hdfs_tgt_dir}${i_dir#"$hdfs_src_dir"}
hdfs dfs -mkdir -p $target_dir
hdfs dfs -mv ${i} "${target_dir}"/ 2>&1
done

第一行递归地选择目标中的所有文件。然后创建目标中每个文件的路径,并最终移动文件。

缺点是文件夹访问权限不会移动,而是在运行时设置。

关于hadoop - HDFS 到 HDFS 完全强制移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213990/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com