基于linux6.x和hadoop2.7.3和hbase1.2.6;
目前hadoop支持4種壓縮,優(yōu)略如下

由于速度快的原因,snappy壓縮被應(yīng)用的更廣泛,我們今天在應(yīng)用中開啟
很多博客說要去下載hadoop-snappy源碼,然后編譯,再添加到hadoop中,這種只適用于0.x版本的hadoop,在1.x以后,hadoop源碼已經(jīng)包含了hadoop-snappy,無需下載了,只不過hadoop的編譯文件中沒有將該功能編譯進(jìn)去,所以只需要重新編譯hadoop,將snappy功能編譯即可,不過首先,你的服務(wù)器需要安裝snappy,所以我們分為兩大步操作:安裝snappy和編譯hadoop
安裝snappy
1.安裝支持環(huán)境yum -y install gcc gcc-c++ autoconf automake libtools
2.下載并解壓snappy-1.1.1.tar.gz
進(jìn)入解壓目錄,執(zhí)行
./configure
make && make install
編譯完成之后會將snappy相關(guān).so鏈接庫默認(rèn)安裝到/usr/local/lib目錄下面(無需操作,自動完成)
編譯hadoop
安裝支持環(huán)境
1.yum -y install cmake zlib-devel ant libssl-dev openssl-devel lzo-devel
2.下載并解壓protobuf:https://github.com/google/protobuf
進(jìn)入目錄執(zhí)行
./configure
make && make install
3.下載并解壓firebugs:http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.1.tar.gz
4.下載并解壓maven:http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
5.配置MAVEN_HOME,F(xiàn)INDBUGS_HOME,PROTOBUF_HOME并導(dǎo)入到PATH
編譯hadoop
1.修改maven的鏡像設(shè)置,地址設(shè)置為阿里云鏡像地址,這樣編譯項目下載依賴時會快很多
2.進(jìn)入hadoop目錄,mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib
3.編譯完成后,jar包在hadoop/hadoop-dist目錄下,直接解壓使用即可
4.修改hadoop的core-site.xml
<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value> </property>
5.啟動hadoop并驗證,hadoop checknative -a
hbase的snappy設(shè)置
1.進(jìn)入maven重新編譯的目錄:cd hadoop/hadoop-dist/target/hadoop-2.7.3/lib/native/
2.將該目錄下文件復(fù)制到hbase目標(biāo)目錄,hbase-1.2.6/lib/native/Linux-amd64-64,沒有該目錄就新建
3.將/usr/local/lib下的文件同步到另外的集群機(jī)器
至此,hadoop的snappy壓縮就完成了,那么hbase里需要配置壓縮嗎?該版本hbase已經(jīng)包含了hadoop-snappy包,如果hadoop已經(jīng)配置了snappy壓縮,hbase無需額外配置,直接使用snappy即可
hbase安裝好驗證壓縮:hbase org.apache.hadoop.hbase.util.CompressionTest test1 snappy