hadoop -getmerge有替代品吗?

问题描述 投票:0回答:3

我试图使用hadoop get merge在集群中合并80 GB文件,

但由于hadoop get merge具有将文件从hdfs复制到本地文件系统的属性,我必须复制到本地,然后再将copyFromLocal复制到hdfs,

hadoop fs -getmerge hdfs:/// path_in_hdfs / * ./local_path

hadoop fs -copyFromLocal ./local_path hdfs:// Destination_hdfs_Path /

我的问题是本地的datanode小于80 GB,

我需要知道是否存在-getmerge的替代方案,其中合并直接从HDFS发送到HDFS

我也试过hadoop -cat,但它不起作用..

hadoop merge yarn hadoop2
3个回答
1
投票

使用-cat选项的HDFS命令应该可以工作。将-cat命令的结果传递给-put命令。

hadoop fs -cat hdfs://input_hdfs_path/* | hadoop fs -put - hdfs://output_hdfs_path/output_file.txt

0
投票

实际上没有一个真正的选择。您可以通过MapReduce或Spark作业(将输出的并行度设置为1)获得相同的结果,但是没有使用纯hdfs命令的解决方案。


0
投票

流媒体可能有所帮助。但是,合并的文件将按排序顺序排列(第一个选项卡之前的文本将是键)。如果不希望排序,则不能选择流式传输。

File 1

Tom     25
Pete    30
Kevin   26

File 2

Neil    28
Chris   31
Joe     27

Merged File

Chris   31
Joe     27
Kevin   26
Neil    28
Pete    30
Tom     25
© www.soinside.com 2019 - 2024. All rights reserved.