gpt4 book ai didi

hadoop - Hadoop LZO索引后单拆分

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

我有一个LZO压缩文件/data/mydata.lzo,尽管我有一些MapReduce代码,但也想运行它。我首先通过以下命令使用hadoop-lzo包创建一个索引文件:

>> hadoop jar hadoop-lzo-0.4.21.jar \
com.hadoop.compression.lzo.DistributedLzoIndexer \
/data/mydata.lzo

运行成功
17/01/04 11:06:31 INFO mapreduce.Job: Running job: job_1472572940387_17794
17/01/04 11:06:41 INFO mapreduce.Job: Job job_1472572940387_17794 running in uber mode : false
17/01/04 11:06:41 INFO mapreduce.Job: map 0% reduce 0%
17/01/04 11:06:52 INFO mapreduce.Job: map 86% reduce 0%
17/01/04 11:06:54 INFO mapreduce.Job: map 100% reduce 0%
17/01/04 11:06:54 INFO mapreduce.Job: Job job_1472572940387_17794 completed successfully

并创建文件 /data/mydata.lzo.index。我现在想通过其他一些Hadoop Java代码运行它
hadoop jar myjar.jar -input /data/mydata.lzo

它可以正确执行,但需要永远。我注意到它只会分割一次文件(当我在非LZO文件上运行同一作业时,它将分割大约25次)
mapreduce.JobSubmitter: number of splits:1

我究竟做错了什么?

hadoop-lzo文档有点缺乏。它说:“现在在新文件上运行任何作业,例如wordcount”。我首先想到我应该使用 /data/mydata.lzo.index文件作为输入,但是使用该文件时我得到一个空输出。该文档还说:“请注意,如果您忘记为.lzo文件编制索引,则该作业可以工作,但会在单个拆分中处理整个文件,这会降低效率。”因此,无论出于何种原因,都看不到 index文件。

传递索引文件的正确方法是什么?

编辑:根据 this issue on GitHub,将自动推断索引文件,并将根据文件大小对其进行拆分。仍然不确定为什么我要分开。

最佳答案

试试这个:

hadoop jar myjar.jar -input /data/mydata.lzo -input /data/mydata.lzo.index

关于hadoop - Hadoop LZO索引后单拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41469903/

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