- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hadoop-2.2.0使用lzo压缩文件作为输入文件.PDF
Hadoop-2.2.0使用lzo压缩文件作为输入文件
Spark大数据博客 -
Hadoop-2.2.0使用lzo压缩文件作为输入文件
在 《Hadoop 2.2.0安装和配置lzo》 文章中介绍了如何基于 Hadoop
2.2.0安装lzo。里面简单介绍了如果在Hive里面使用lzo数据。今天主要来说说如何在Hadoop
2.2.0中使用lzo压缩文件当作的数据。
lzo压缩默认的是不支持切分的,也就是说,如果直接把lzo文件当作Mapreduce任务的输入
,那么Mapreduce只会用一个Map来处理这个输入文件,这显然不是我们想要的。其实我们只需
要对lzo文件建立索引,这样这个lzo文件就会支持切分,也就可以用多个Map来处理lzo文件。我
们可以用 《Hadoop 2.2.0安装和配置lzo》 文章中编译的hadoop-lzo-0.4.20-SNAPSHOT.jar包来
对lzo文件建立索引(假如在/home/wyp/input目录下有个cite.txt.lzo文件,这个目录是在HDFS上)
:
$ $HADOOP_HOMOE/bin/hadoop jar
$HADOOP_HOMOE/share/hadoop/common/hadoop-lzo-0.4.20-SNAPSHOT.jar
pression.lzo.DistributedLzoIndexer
/home/wyp/input/cite.txt.lzo
生成出来的索引文件后缀为.index,并存放在lzo同一目录下.在本例中产生的索引文件是存放在/h
ome/wyp/input目录下,名称为cite.txt.lzo.index。
我们也可以用下面的方法对lzo文件来建立索引:
$ $HADOOP_HOMOE/bin/hadoop jar
$HADOOP_HOMOE/share/hadoop/common/hadoop-lzo-0.4.20-SNAPSHOT.jar
pression.lzo.LzoIndexer
/home/wyp/input/cite.txt.lzo
这个方法和上面方法产生出来的索引文件是一样的;但是上面的方法是通过启用Mapreduce任务
来执行的,而这里的方法只在一台客户机上运行,效率很慢!
那么,如何在Mapreduce任务中使用lzo文件。下面分别对Mapreduce程序、Streaming程序以及
Hive分别进行说明:
1、对于Mapreduce程序,我们需要把程序中所有的TextInputFormat修改为LzoTextInputFormat,如下:
job.setInputFormatClass(TextInputFormat.class);
1 / 3
Hadoop-2.2.0使用lzo压缩文件作为输入文件
Spark大数据博客 -
修改为
job.setInputFormatClass(LzoTextInputFormat.class);
LzoTextInputFormat类需要引入相应的包,如果你是使用pom文件,可以引入以下依赖:
dependency
groupIdcom.hadoop.gplcompression/groupId
artifactIdhadoop-lzo/artifactId
version0.4.19/version
/dependency
如果你的输入格式不是LzoTextInputFormat类,那么Mapreduce程序将会把.index文件也当作是
数据文件!修改完之后,需要重新编译你的Mapreduc程序。这样在运行Mapreduce程序的时候
,将lzo文件所在的目录当作输入即可,Mapreduce程序会识别出.index文件的:
$ /home/q/hadoop-2.2.0/bin/hadoop jar
statistics2.jar com.wyp.Sts
-Dmapreduce.job.queuename=que
文档评论(0)