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啦。


猜你喜欢

转载自taoo.iteye.com/blog/1526942