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
測試結果:出現如下結果說明配置成功