这个东西,看来很复杂,网上一搜很多资料。
总的来说就是
一,需要编译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相关的问题,可以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到该目录下,然后执行以下命令:
注意几点: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中添加:
b,在core-site.xml中添加:
c,在mapred-site.xml中添加:
然后就ok啦。
总的来说就是
一,需要编译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啦。