hadoop安装lzo
来源:互联网 发布:des算法与rsa算法 编辑:程序博客网 时间:2024/05/17 08:41
一、前提
因为安装Lzo及Lzop需要本地编译,所以需要安装编译环境,像Gcc , Ant , Maven
1、gcc的安装
主要是后面编译Lzo时用到,如果有安装就略过
yum install lib* glibc* gcc*
2、Ant、Maven的安装
如果使用Twitter的hadoop-lzo只需要安装Maven就行,如果使用kevinweil的hadoop-lzo则需要安装Ant,并且最好1.8.2及以上版本,并设置好环境变量,两者选其一,安装都比较简单。
1).ant的安装:
删除旧版本:yum remove ant
安装新版本:
wget http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.9.2-bin.tar.gztar -jxvf apache-ant-1.9.2-bin.tar.bz2
添加ANT环境变量:
vi /etc/profile.d/dev.shexport ANT_HOME=/usr/local/apache-ant-1.9.2 export PATH=$PATH:$ANT_HOME/binsource /etc/profile 使配置文件生效
2) Maven安装
maven安装与Ant安装差不多,解压,然后配置环境变量,如:
export MAVEN_HOME=/opt/modules/apache-maven-2.2.1export PATH=$MAVEN_HOME/bin:$PATHexport ANT_HOME=/opt/modules/apache-ant-1.9.2export PATH=$ANT_HOME/bin:$PATH
说明:$MAVEN_HOME/conf/setting.xml文件需要配置正常的仓库路径,以及本地路径。
二、安装LZO
操作如下:
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gzexport CFLAGS=-m32./configure -enable-sharedmake && 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),然后运行以下命令使配置生效:
/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。
参考:
http://blog.cloudera.com/blog/2009/11/hadoop-at-twitter-part-1-splittable-lzo-compression/
https://code.google.com/a/apache-extras.org/p/hadoop-gpl-compression/wiki/FAQ?redir=1
1.下载源码
https://github.com/kevinweil/hadoop-lzo 或
https://github.com/twitter/hadoop-lzo
2.解压缩、进入项目目录
略
3.编译
编译分kevinweil和twitter两个版本分别说明。主要是编译方式不同,一个使用ant,twitter使用maven。
kevinweil:
# 32位OSexport CFLAGS=-m32export CXXFLAGS=-m32ant compile-native tar # 64位OSexport CFLAGS=-m64export CXXFLAGS=-m64ant compile-native tar
#将本地库以及Jar包拷贝到hadoop对应的目录下,并分发到各节点上cd buildcp hadoop-lzo-0.4.18.jar /opt/modules/hadoop/hadoop-1.0.3/lib/cp –r native/Linux-i386-32/* /opt/modules/hadoop/hadoop-1.0.3/lib/native/Linux-i386-32/ #64位系统则是64位的路径目录Linux-amd64-64#或者用命令:tar -cBf - -C native . | tar -xBvf - -C /opt/modules/hadoop/hadoop-1.0.3/lib/native
Twitter:
export CFLAGS=-m32 #64位的使用m64export CXXFLAGS=-m32export C_INCLUDE_PATH=/usr/local/include/lzoexport LIBRARY_PATH=/usr/local/libmvn clean package -Dmaven.test.skip=truetar -cBf - -C native/Linux-i386-32/lib . | tar -xBvf - -C /opt/modules/hadoop/hadoop-1.0.3/lib/native/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.*
注:如果编译不过,尝试执行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
四、安装lzop
LZOP是使用lzo库写的一个程序,通过shell命令直接可以压缩、解压缩文件。
#下载Wget http://www.lzop.org/download/lzop-1.03.tar.gz#解压缩、进入项目目录(略过)./configuremakemake install
用一下lzop的压缩解压功能,成功安装后可直接使用lzop命令对文件进行解压缩操作了。
# 压缩
lzop 20110915.log #生成lzop 20110915.log.lzo文件
# 解压,并输出文件内容
lzop -cdpv.txt.lzo |more
五、配置core-site.xml、mapred-site.xml
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.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value> <!-- 配置 Hadoop 压缩包 --> </property> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property>
说明:主要是增加LzoCodec的编码解码器。
mapred-site.xml
<property> <name>mapred.compress.map.output</name> <value>true</value> <!-- map 和 reduce 输出中间文件默认开启压缩 --> </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=/opt/modules/hadoop/hadoop-1.0.2/lib/native/Linux-i386-32</value> </property>说明:主要是设置开启压缩,以及环境变量
PS. 如果上述方式设置的LD_LIBRARY_PATH没有生效(通过“ps -ef |grep tasktracker”查看),可能需要通过bin/hadoop里设置JAVA_LIBRARY_PATH。
解决办法:在$hadoop_home/bin/hadoop文件中增加如下一行即可export JAVA_LIBRARY_PATH=$hadoop_home/lib/native/ Linux-i386-32
如果还有问题请关注下一篇博文。
六、集群节点同步
同步之前先在各节点安装LZO包、LZOP、LZO编码解码器. 再把配置同步过去(mapred-site.xml、core-site.xml文件)
注:如果你是单机伪分布式的环境,则不需要此步,直接启动hadoop即可。
七、测试LZO
启动之后怎么才能知道我们的LZO在hadoop中发挥作用了呢?可以运行以下命令进行测试,先使用lzop制作一个lzo文件并上传到HDFS中,然后进入$HADOOP_HOME目录执行
单机:
hadoop jar lib/hadoop-lzo-0.4.19-SNAPSHOT.jar com.hadoop.compression.lzo.LzoIndexer /test/
Mapreduce方式生成index命令:
hadoop jar lib/hadoop-lzo-0.4.19-SNAPSHOT.jar com.hadoop.compression.lzo.DistributedLzoIndexer /test/
执行一个mapred程序,如wordcount 添加参数"-inputformat com.hadoop.mapred.DeprecatedLzoTextInputFormat"
说明:以上命令 lib/ hadoop-lzo-0.4.19-SNAPSHOT.jar是你编译后拷贝过来的jar文件,my_big_file.lzo文件需要提前上传上HDFS的/test目录下。执行成功后会生成index文件。
在程序中使用:
conf.set("io.compression.codecs", "org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,com.hadoop.compression.lzo.LzopCodec");conf.set("io.compression.codec.lzo.class", "com.hadoop.compression.lzo.LzoCodec");
至此,hadoop安装lzo已经完成,如果安装过程中出现Could not load native gpl library,请看下一篇的文章。
- hadoop lzo安装
- 安装hadoop-lzo
- Hadoop LZO 安装教程
- hadoop中安装lzo
- hadoop安装lzo
- hadoop lzo安装
- hadoop-lzo安装
- hadoop-lzo 安装教程
- hadoop-lzo 安装手册
- hadoop hbase lzo 安装笔记
- hadoop集群lzo的安装
- Hadoop lzo详细安装手册
- hadoop-lzo-0.4.20安装
- hadoop的lzo插件安装
- Hadoop 2.x(YARN)安装配置LZO
- Hadoop LZO的安装与配置
- Centos之hadoop之lzo库安装
- Hadoop Lzo
- POJ 2777 Count Color (线段树、lazy思想)
- kpartx在哪里?
- 从今天开始,我也要写Web log 了
- 简要描述
- BNU33647:Angry Grammar Nazi
- hadoop安装lzo
- BNU33650:Negative People in Da House
- os, sys模块及其他内容
- hdu4453 伸展树基本题
- lucene4.5 demo 配置
- error: `PCIMEM_BASE ' undeclared
- EasyTouch 快速开始
- CXGRID用法(取行、列值,定位选中某行等等)
- 使用IJG读写JPEG格式文件