gpt4 book ai didi

Hadoop:使用 NLineInputFormat 进行压缩?

转载 作者:行者123 更新时间:2023-12-02 21:55:02 25 4
gpt4 key购买 nike

$ cat abook.txt | base64 –w 0 >onelinetext.b64
$ hadoop fs –put onelinetext.b64 /input/onelinetext.b64
$ hadoop jar hadoop-streaming.jar \
-input /input/onelinetext.b64 \
-output /output \
-inputformat org.apache.hadoop.mapred.lib.NLineInputFormat \
–mapper wc

Num task: 1, and output has one line:

Line 1: 1 2 202699



这是有道理的,因为每个映射器只有一行。
$ bzip2 onelinetext.b64
$ hadoop fs –put onelinetext.b64.bz2 /input/onelinetext.b64.bz2
$ hadoop jar hadoop-streaming.jar \
-Dmapred.input.compress=true \
-Dmapred.input.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-input /input/onelinetext.b64.gz \
-output /output \
-inputformat org.apache.hadoop.mapred.lib.NLineInputFormat \
–mapper wc

我期待与上面相同的结果,'因为应该在处理单行文本(即 wc)之前进行解压缩,但是,我得到:

Num task: 397, and output has 397 lines:

Line1-396: 0 0 0

Line 397: 1 2 202699



知道为什么这么多 mapred.map.tasks <>1 吗? split ?
我故意选择 gzip,因为我相信它是不可拆分的。
使用 bzip2 和 lzop 编解码器时,我得到了类似的结果。

提前感谢您的回答。

最佳答案

我认为这取决于您使用的 Hadoop 版本。例如有HADOOP-4012

关于Hadoop:使用 NLineInputFormat 进行压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670062/

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