uHa*_*oop 31 hadoop apache-pig
我将多个小文件放入我的输入目录,我希望将其合并到一个文件中,而不使用本地文件系统或编写mapred.有没有办法可以使用hadoof fs命令或猪?
谢谢!
Guy*_*y B 22
为了保持网格上的所有内容,使用带有单个reducer和cat作为mapper和reducer(基本上是noop)的hadoop流 - 使用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
Run Code Online (Sandbox Code Playgroud)
如果要压缩,请添加
-Dmapred.output.compress = true\-Dmapred.output.compression.codec = org.apache.hadoop.io.compress.GzipCodec
Har*_*eri 17
hadoop fs -getmerge <dir_of_input_files> <mergedsinglefile>
Run Code Online (Sandbox Code Playgroud)
好吧......我想出了一种使用hadoop fs命令的方法-
hadoop fs -cat [dir]/* | hadoop fs -put - [destination file]
Run Code Online (Sandbox Code Playgroud)
它在我测试时起作用了......人们可以想到的任何陷阱?
谢谢!
| 归档时间: |
|
| 查看次数: |
45095 次 |
| 最近记录: |