你好,游客 登录 注册 搜索
背景:
阅读新闻

Hadoop安装lzo

[日期:2014-03-21] 来源:Linux社区  作者:wanglinzi [字体: ]
我的运行环境:JDK1.6、RedHat6 32bit、apache Hadoop1.X(社区版本)--Hadoop CDH3、4版本也适用.如有差异文中会特别注明。
在没有特别指出的话,所有操作都是在Namenode中进行的.安装完成后最后同步到集群其它节点,当然你也可以根据实际环境做相应删减

一、前提

因为安装Lzo及Lzop需要本地编译,所以需要安装编译环境,像Gcc , Ant , Maven

1gcc的安装

主要是后面编译Lzo时用到,如果有安装就略过

  1. yum install lib* glibc* gcc*

 

2Ant、Maven的安装

如果使用Twitter的hadoop-lzo只需要安装Maven就行,如果使用kevinweil的hadoop-lzo则需要安装Ant,并且最好1.8.2及以上版本,并设置好环境变量,两者选其一,安装都比较简单。

1).ant的安装:
删除旧版本:yum remove ant
安装新版本

  1. wget http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.9.2-bin.tar.gz
  2. tar -jxvf apache-ant-1.9.2-bin.tar.bz2

 

添加ANT环境变量:

  1. vi /etc/profile.d/dev.sh
  2. export ANT_HOME=/usr/local/apache-ant-1.9.2
  3. export PATH=$PATH:$ANT_HOME/bin
  4. source /etc/profile 使配置文件生效

2) Maven安装

maven安装与Ant安装差不多,解压,然后配置环境变量,如:

  1. export MAVEN_HOME=/opt/modules/apache-maven-2.2.1
  2. export PATH=$MAVEN_HOME/bin:$PATH
  3. export ANT_HOME=/opt/modules/apache-ant-1.9.2
  4. export PATH=$ANT_HOME/bin:$PATH

说明:$MAVEN_HOME/conf/setting.xml文件需要配置正常的仓库路径,以及本地路径。

 

二、安装LZO

操作如下:

  1. wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
  2. export CFLAGS=-m32
  3. ./configure -enable-shared
  4. make && make install

 

完成之后,lib库文件被默认安装到了/usr/local/lib,我们需要进一步指定lzo库文件的路径,两个方法都可以:

1)拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)

2)在/etc/ld.so.conf.d/目录下新建lzo.conf文件,只需写入lzo库文件的路径(/usr/local/lib),然后运行以下命令使配置生效:

  1. /sbin/ldconfig -v

 

三、安装hadoop-LZO

 

提醒:lzo目前有大概2个版本可选,Hadoop 1.x的时候可以按照cloudera的文档在https://github.com/kevinweil/hadoop-lzo上编译,它是fork自https://github.com/twitter/hadoop-lzo。kevinweil这个版本在hadoop1.0.3上不适用,有些接口已经不能用了。因为kevinweil这个版本已经很久没有更新了,而且它是基于Hadoop 0.20去编译的,也不能用于Hadoop2.x。而twitter hadoop-lzo在最近将Ant的编译方式切换为Maven,默认的dependency中Hadoop jar包就是2.x的,所以要clone twitter的hadoop-lzo,用Maven编译jar包和native library。

 

1.下载源码

 

https://github.com/kevinweil/hadoop-lzo

 

https://github.com/twitter/hadoop-lzo

 

 

 

2.解压缩、进入项目目录

 

 

3.编译

 

编译分kevinweil和twitter两个版本分别说明。主要是编译方式不同,一个使用ant,twitter使用maven。

 

kevinweil

 

  1. # 32位OS
  2. export CFLAGS=-m32
  3. export CXXFLAGS=-m32
  4. ant compile-native tar
  5. # 64位OS
  6. export CFLAGS=-m64
  7. export CXXFLAGS=-m64
  8. ant compile-native tar

 

 

 
  1. #将本地库以及Jar包拷贝到hadoop对应的目录下,并分发到各节点上
  2. cd build
  3. cp hadoop-lzo-0.4.18.jar /opt/modules/hadoop/hadoop-1.0.3/lib/
  4. cp –r native/Linux-i386-32/* /opt/modules/hadoop/hadoop-1.0.3/lib/native/Linux-i386-32/ #64位系统则是64位的路径目录Linux-amd64-64
  5. #或者用命令:tar -cBf - -C native . | tar -xBvf - -C /opt/modules/hadoop/hadoop-1.0.3/lib/native

 

 

Twitter:

 

  1. export CFLAGS=-m32 #64位的使用m64
  2. export CXXFLAGS=-m32
  3. export C_INCLUDE_PATH=/usr/local/include/lzo
  4. export LIBRARY_PATH=/usr/local/lib
  5. mvn clean package -Dmaven.test.skip=true
  6. tar -cBf - -C native/Linux-i386-32/lib . | tar -xBvf - -C /opt/modules/hadoop/hadoop-1.0.3/lib/native/
  7. cp target/hadoop-lzo-0.4.19-SNAPSHOT.jar /opt/modules/hadoop/hadoop-1.0.3/lib

 

 

最终确保$HADOOP_HOME/lib/native/Linux-i386-32/目录下有libhadoop.*、及libgplcompression.*

 

注:如果编译不过,尝试执行:

 

  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

 

相关阅读

Ubuntu 13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建) http://www.linuxidc.com/Linux/2011-12/48894.htm

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

linux
相关资讯       Hadoop Lzo  LZO 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款