gpt4 book ai didi

hadoop - 你如何在谷歌存储的数据处理上执行 hadoop fs -getmerge

转载 作者:可可西里 更新时间:2023-11-01 14:46:40 25 4
gpt4 key购买 nike

如何在 dataproc 上使用 getmerge 处理转储到 google 存储桶的部分文件。如果我尝试这个 hadoop fs -getmerge gs://my-bucket/temp/part-* gs://my-bucket/temp_merged我得到一个错误getmerge:/temp_merged(权限被拒绝)

它适用于 hadoop fs -getmerge gs://my-bucket/temp/part-* temp_merged 但当然是在集群机器上而不是在 GS 中写入合并文件。

最佳答案

根据fsshell documentationgetmerge 命令从根本上将目标路径视为“本地”路径(因此在 gs://my-bucket/temp_merged 中它忽略了“方案”和“权限” "组件,尝试直接写入您的本地文件系统路径 /temp_meged;这不是特定于 GCS 连接器;如果您尝试 hadoop fs -getmerge gs,您会看到相同的结果://my-bucket/temp/part-* hdfs:///temp_merged,更糟糕的是,如果您尝试类似 hadoop fs -getmerge gs://my-bucket/temp/part- * hdfs:///tmp/temp_merged,您可能认为它成功了,但实际上文件没有出现在 hdfs:///tmp/temp_merged 中,而是出现在您的本地文件系统 file:///tmp/temp_merged 下。

您可以改为使用管道标准输出/标准输入来实现它;不幸的是,由于 .crc 文件的权限和使用,-getmerge 不能很好地与 /dev/stdout 配合使用,但您可以实现相同的效果使用 hadoop fs -put 中支持从 stdin 读取的功能的效果:

hadoop fs -cat  gs://my-bucket/temp/part-* | \
hadoop fs -put - gs://my-bucket/temp_merged

关于hadoop - 你如何在谷歌存储的数据处理上执行 hadoop fs -getmerge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387719/

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