首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hadoop lzo配备

2012-07-05 
hadoop lzo配置这个东西,看来很复杂,网上一搜很多资料。总的来说就是一,需要编译hadoop lzo部分的代码,然后

hadoop lzo配置
这个东西,看来很复杂,网上一搜很多资料。

总的来说就是
一,需要编译hadoop lzo部分的代码,然后添加到hadoop lib里面。
二,然后在core-site.xml、mapred-site.xml、hadoop-env.sh里面加几个参数,
三,重启集群就ok了。

虽然看上去就三步,不过编译hadoop lzo部分的代码还是有点小麻烦的。
现在主要记录下这块把。


说明:
a,yum install lzo-devel.x86_64
b。部署编译好的库文件
c,修改配置文件
这三个是要在每个节点上执行的。
其他的都是为了编译做准备,只需要在一台机器上执行就行了。

具体过程如下:


主要分为以下几步:
1,下载lzo库和相关工具
    下载之前,配置好yum是必须的,嘿嘿。
    然后执行

yum install lzo-devel.x86_64 lzop.x86_64 gcc --nogpgcheck

当然,有可能会有各种yum相关的问题,可以yum clean all一下试试。
哦,对了,这里机器是64位的,32位的可能有不同。


2,下载hadoop lzo功能代码
   因为hadoop官方包没有这部分代码,需要下载,地址如下:
   https://github.com/kevinweil/hadoop-lzo,左上角有个zip下载就是,kevinweil-hadoop-lzo-6bb1b7f.zip这个就是下载下来的东西。
   另外就是下载ant工具,用这个版本:apache-ant-1.8.3


3,编译代码
   将zip解压后,cd到该目录下,然后执行以下命令:

 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun-1.6.0.18.x86_64 export CFLAGS=-m64  export CXXFLAGS=-m64  ant compile-native tar

注意几点:a,这里是64位的机器设置方法,32位的可能会有不同。
          b,JAVA_HOME一定要正确,不能是软连接或者硬连接,一定要是目录。
          c,ant版本要用 apache的1.8.3。(之前yum安装了一个,不行)

4,部署编译好的库
   编译好后,会在build文件夹下生成些新东西,
   把build 下的hadoop-lzo-0.4.15.jar复制到$HADOOP_HOME/lib下,
   把build/native/Linux-amd64-64/lib 下的所有内容,复制到$HADOOP_HOME/lib/native/Linux-amd64-64/下


5,修改配置文件
   a,在hadoop-env.sh中添加:
export HADOOP_CLASSPATH="${HADOOP_PREFIX}/lib/hadoop-lzo-0.4.14.jar:${HADOOP_CLASSPATH}"


   b,在core-site.xml中添加:
   <property>     <name>io.compression.codecs</name>     <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>   </property>   <property>     <name>io.compression.codec.lzo.class</name>     <value>com.hadoop.compression.lzo.LzoCodec</value>   </property>


   c,在mapred-site.xml中添加:
  <property>    <name>mapreduce.map.output.compress</name>    <value>true</value>  </property>  <property>    <name>mapreduce.map.output.compress.codec</name>    <value>com.hadoop.compression.lzo.LzoCodec</value>  </property>    <property>      <name>mapred.child.env</name>      <value>JAVA_LIBRARY_PATH=/home/hadoop/hadoop-0.20.2-cdh3u3/lib/native/Linux-amd64-64</value>    </property> 



然后就ok啦。


热点排行