hadoop2.7.1_Snappy64位编译完成后的软件与编译方法
编译完成软件下载地址:
http://yunpan.cn/cL3jJa7XEMtHy 访问密码66de
第一步:编译前环境要求
第二步:snappy编译
第三步:hadoop-snappy编译
第四步:64位Hadoop支持snappy编译
第五步:相关配置
第六步:测试
1、 我的是CentOS6.7 64位系统:
yum install gcc-c++ autoconfautomake libtool
安装JDK、Maven(网上教程很多,但建议用3.2的版本,JDK1.7.0-1.7.45,否则在编译Hadoop时可能出现问题)
2、 snappy编译
wget http://snappy.googlecode.com/files/snappy-1.1.1.tar.gz
然后解压后,执行三步骤:
./configure
make
sudo make install
默认安装路径:/usr/local/lib下面
检查安装是否成功
ls /usr/local/lib/libsn*
3、 hadoop-snappy编译
3.1下载hadoop-snappy源码
svn checkout http://hadoop-snappy.googlecode.com/svn/trunk/hadoop-snappy
3.2.安装hadoop-snappy
cd hadoop-snappy
mvn package
4、 64位Hadoop支持snappy编译(32位不用此步骤)
4.1 yum install cmakezlib1g-dev pkg-config libssl-dev
4.2 安装protobuf-2.5.0(下载protobuf)
然后解压后,执行三步骤:
./configure
make && make install
4.3 下载并解压Hadoop2.7.1-src
进入源码目录,执行如下命令:
mvn package -Pdist,native-DskipTests -Dtar -rf :hadoop-common -Drequire.snappy -X
(过程很漫长,如果Maven依赖包以前没有下载过,按照中国下载的速度,一般要用5个小时以上)
5、 相关配置
解压hadoop-snappy-0.0.1-SNAPSHOT.tar.gz文件,会生成hadoop-snappy-0.0.1-SNAPSHOT目录,拷贝这个目录下相关文件到$HADOOP_HOME/lib/native/Linux-amd64-64
cp -r /hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/*$HADOOP_HOME/lib/native/Linux-amd64-64(这种测试没有通过)
cp-r /hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/*$HADOOP_HOME/lib/native(这个测试没问题)
将target目录下的hadoop-snappy-0.0.1-SNAPSHOT.jar拷贝到$HADOOP_HOME/lib/目录下。
修改hadoop-env.sh,增加内容如下:
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
修改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,
org.apache.hadoop.io.compress.SnappyCodec
</value>
<property>
<name>io.compression.codec.snappy.class</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
</property>
修改map-site.xml文件
以下是只有Map输出压缩
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
reduce输出压缩
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
6、 重启Hadoop系统,测试程序如下:
进入目录:$HADOOP_HOME /share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /tmp/t1.txt/output
测试结果:出现如下结果说明配置成功