我将多个小文件放到我的输入目录中,我希望将它们合并到一个文件中,而不使用本地文件系统或编写mapred。有没有办法可以用hadoof fs命令或者Pig来做呢?
谢谢!
发布于 2014-11-25 20:54:49
为了保持网格上的所有内容,使用hadoop streaming并使用单个reducer和cat作为映射器和reducer (基本上是noop) -使用MR标志添加压缩。
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
发布于 2010-08-25 01:46:34
hadoop fs -getmerge <dir_of_input_files> <mergedsinglefile>
发布于 2010-08-25 16:49:09
好的……我想出了一种使用hadoop fs
命令的方法-
hadoop fs -cat [dir]/* | hadoop fs -put - [destination file]
当我测试一个人能想到的it...any陷阱时,它起作用了吗?
谢谢!
https://stackoverflow.com/questions/3548259
复制相似问题