设为首页 收藏本站
查看: 579|回复: 0

[经验分享] hadoop和hbase lzo压缩

[复制链接]

尚未签到

发表于 2016-12-4 09:13:14 | 显示全部楼层 |阅读模式
  配置hadoop lzo

一、下载、解压并编译lzo包

1[wyp@master  ~]$ wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
2[wyp@master  ~]$ tar -zxvf lzo-2.06.tar.gz
3[wyp@master  ~]$ cd lzo-2.06
4[wyp@master  ~]$ export CFLAGS=-m64
5[wyp@master  ~]$ ./configure -enable-shared -prefix=/usr/local/hadoop/lzo/
6[wyp@master  ~]$ make && sudo make install
  编译完lzo包之后,会在/usr/local/hadoop/lzo/生成一些文件,目录结构如下:

1[wyp@master  /usr/local/hadoop/lzo]$ ls -l
2total 12
3drwxr-xr-x 3 root root 4096 Mar 21 17:23 include
4drwxr-xr-x 2 root root 4096 Mar 21 17:23 lib
5drwxr-xr-x 3 root root 4096 Mar 21 17:23 share
  将/usr/local/hadoop/lzo目录下的所有文件打包,并同步到集群中的所有机器上。(我没这么做)
  在编译lzo包的时候,需要一些环境,可以用下面的命令安装好lzo编译环境

1[wyp@master  ~]$ yum -y install  lzo-devel     \
2               zlib-devel  gcc autoconf automake libtool

二、安装Hadoop-LZO
  这里下载的是Twitter hadoop-lzo,可以用Maven(如何安装Maven请参照本博客的《Linux命令行下安装Maven与配置》)进行编译。

1[wyp@master  ~]$ wget https://github.com/twitter/hadoop-lzo/archive/master.zip
  下载后的文件名是master,它是一个zip格式的压缩包,可以进行解压:

1[wyp@master  ~]$ unzip master
  hadoop-lzo中的pom.xml依赖了hadoop2.1.0-beta,由于我们这里用到的是Hadoop 2.2.0,所以建议将hadoop版(我用的2.3,2.4,2.5也可以用)

1<properties>
2    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3    <hadoop.current.version>2.2.0</hadoop.current.version>
4    <hadoop.old.version>1.0.4</hadoop.old.version>
5  </properties>
  然后进入hadoop-lzo-master目录,依次执行下面的命令

01[wyp@master  hadoop-lzo-master]$ export CFLAGS=-m64
02[wyp@master  hadoop-lzo-master]$ export CXXFLAGS=-m64
03[wyp@master  hadoop-lzo-master]$ export C_INCLUDE_PATH=     \
04                                  /usr/local/hadoop/lzo/include
05[wyp@master  hadoop-lzo-master]$ export LIBRARY_PATH=/usr/local/hadoop/lzo/lib
06[wyp@master  hadoop-lzo-master]$ mvn clean package -Dmaven.test.skip=true
07[wyp@master  hadoop-lzo-master]$ cd target/native/Linux-amd64-64
08[wyp@master  Linux-amd64-64]$ tar -cBf - -C lib . | tar -xBvf - -C ~
09[wyp@master  ~]$cp ~/libgplcompression* $HADOOP_HOME/lib/native/  
10[wyp@master  hadoop-lzo-master]$cp target/hadoop-lzo-0.4.18-SNAPSHOT.jar   \
11                                   $HADOOP_HOME/share/hadoop/common/
  其中~目录下的libgplcompression.so和libgplcompression.so.0是链接文件,指向libgplcompression.so.0.0.0,将刚刚生成的libgplcompression*和target/hadoop-lzo-0.4.18-SNAPSHOT.jar同步到集群中的所有机器对应的目录(这个同步是必须的,否则或找不到jar包和执行错误)
  配置hadoop

添加到maper-site.xml
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>mapred.child.env</name>
<value>LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib</value>
</property>
添加到core-site.xml
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
  使用LZO压缩
  1.mr输出压缩文件:

    Configuration conf = new Configuration();
conf.set("mapred.output.compression.codec", "com.hadoop.compression.lzo.LzopCodec");
conf.set("mapred.output.compress", "true");
  2.hive创建压缩表

CREATE EXTERNAL TABLE test(
key string ,
params string , )
row format delimited fields terminated by '\t'
collection items terminated by ','
lines terminated by '\n'
STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
location '/user/hive/warehouse/dirk.db/test';
  配置hbase lzo
  将hadoop-lzo-0.4.18-SNAPSHOT.jar放入$HBASE_HOME/lib下,需要重启hbase
  创建hbase表

create 'test',{NAME=>'f',COMPRESSION=>'LZO'}
   

alter 'dirktt',{NAME=>'f',COMPRESSION=>'LZO'}
   
  结束
  转 http://my.oschina.net/u/1169079/blog/225070

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-309359-1-1.html 上篇帖子: hadoop源码调试跟踪方法 下篇帖子: Hadoop全局排序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表