首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Hadoop中将多个文件合并为一个文件

在Hadoop中将多个文件合并为一个文件
EN

Stack Overflow用户
提问于 2010-08-23 21:59:50
回答 8查看 50.6K关注 0票数 32

我将多个小文件放到我的输入目录中,我希望将它们合并到一个文件中,而不使用本地文件系统或编写mapred。有没有办法可以用hadoof fs命令或者Pig来做呢?

谢谢!

EN

回答 8

Stack Overflow用户

发布于 2014-11-25 20:54:49

为了保持网格上的所有内容,使用hadoop streaming并使用单个reducer和cat作为映射器和reducer (基本上是noop) -使用MR标志添加压缩。

代码语言:javascript
运行
复制
hadoop jar \
    $HADOOP_PREFIX/share/hadoop/tools/lib/hadoop-streaming.jar \<br>
    -Dmapred.reduce.tasks=1 \
    -Dmapred.job.queue.name=$QUEUE \
    -input "$INPUT" \
    -output "$OUTPUT" \
    -mapper cat \
    -reducer cat

如果您想要压缩添加

-Dmapred.output.compress=true \ -Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec

票数 23
EN

Stack Overflow用户

发布于 2010-08-25 01:46:34

代码语言:javascript
运行
复制
hadoop fs -getmerge <dir_of_input_files> <mergedsinglefile>
票数 17
EN

Stack Overflow用户

发布于 2010-08-25 16:49:09

好的……我想出了一种使用hadoop fs命令的方法-

代码语言:javascript
运行
复制
hadoop fs -cat [dir]/* | hadoop fs -put - [destination file]

当我测试一个人能想到的it...any陷阱时,它起作用了吗?

谢谢!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3548259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档