首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop lzo单次分裂后索引

Hadoop lzo单次分裂后索引
EN

Stack Overflow用户
提问于 2017-01-04 17:30:34
回答 1查看 326关注 0票数 0

我有一个LZO压缩文件/data/mydata.lzo,希望通过一些MapReduce代码来运行它。我首先使用以下命令使用哈多普包创建索引文件:

代码语言:javascript
复制
>> hadoop jar hadoop-lzo-0.4.21.jar \
    com.hadoop.compression.lzo.DistributedLzoIndexer \
    /data/mydata.lzo

它成功运行。

代码语言:javascript
复制
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代码来运行这个程序。

代码语言:javascript
复制
hadoop jar myjar.jar -input /data/mydata.lzo

它执行正确,但要花费很长时间。我注意到它只分割文件一次(当我在非LZO文件上运行相同的作业时,它会将其拆分25次)。

代码语言:javascript
复制
mapreduce.JobSubmitter: number of splits:1

我做错了什么?

hadoop文档有点缺乏。上面写着“现在在新文件上运行任何作业,比如wordcount”。我首先认为我应该使用/data/mydata.lzo.index文件作为我的输入,但是当我使用该文件时会得到一个空的输出。文档还说:“请注意,如果您忘记索引一个.lzo文件,该作业将工作,但将处理整个文件在一个单独的分割,这将是低效率。”因此,无论出于什么原因,它都没有看到index文件。

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

编辑:根据GitHub上的这个问题,索引文件将自动推断,并将根据文件大小进行拆分。还是不知道为什么我会得到一个单独的分裂。

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 02:30:39

试试这个:

代码语言:javascript
复制
hadoop jar myjar.jar -input /data/mydata.lzo -input /data/mydata.lzo.index
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41469903

复制
相关文章

相似问题

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