(摘自:http://lxw1234.com/archives/2017/01/830.htm)
注:本文針對的是使用命令行安裝和配置CDH Hadoop,如果你使用RPM或者ClouderaManager,基本可以忽略此文。
Hadoop在計算和存儲過程中,支持對文件進行壓縮,可以使用hadoop checknative命令來查看:

其中,像zlib、lz4、bzip2,會使用系統(tǒng)庫,那么需要在Hadoop所在機器上先安裝這些。
Snappy和Lzo,需要單獨安裝配置,CDH版本的hadoop,已經(jīng)為每一個版本及操作系統(tǒng)編譯好了Snappy和Lzo庫(RPM),可以通過RPM來獲得。
http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.8.3/RPMS/x86_64/
Snappy庫可以從上面鏈接中的Hadoop RPM包中獲取,注意:需要找到正確的操作系統(tǒng)及cdh版本,我使用的操作系統(tǒng)為centos 7,cdh5.8.3.

http://archive.cloudera.com/gplextras5/redhat/7/x86_64/gplextras/5.8.3/RPMS/x86_64/
Lzo庫及jar包,可以從上面的鏈接中獲得,仍然需要注意你的操作系統(tǒng)版本和cdh版本。

RPM包下載好之后,使用下面的命令安裝:
rpm -ivh hadoop-2.6.0+cdh5.8.3+1718-1.cdh5.8.3.p0.7.el6.x86_64.rpm –nodepsrpm -ivh hadoop-lzo-0.4.15+cdh5.8.3+0-1.cdh5.8.3.p0.7.el7.x86_64.rpm –nodeps
安裝后的路徑一般會在/usr/lib/hadoop/
也可使用rpm -ql hadoop-2.6.0+cdh5.8.3+1718-1.cdh5.8.3.p0.7.el6.x86_64來查詢安裝路徑。
備份和拷貝native庫目錄:
cd $HADOOP_HOME/libmv native native-bakcp -r /usr/lib/hadoop/lib/native $HADOOP_HOME/lib/
拷貝lzo jar包:
cp /usr/lib/hadoop/lib/hadoop-lzo-0.4.15-cdh5.8.3.jar $HADOOP_HOME/share/hadoop/common/lib/

拷貝完后,需要先卸載掉前面安裝的兩個包:
rpm -e hadoop-lzo-0.4.15+cdh5.8.3+0-1.cdh5.8.3.p0.7.el7.x86_64 –nodepsrpm -e hadoop-2.6.0+cdh5.8.3+1718-1.cdh5.8.3.p0.7.el6.x86_64 –nodeps
檢查 hadoop checknative:

OK了,將更新后的$HADOOP_HOME/lib/native以及$HADOOP_HOME/share/hadoop/common/lib/hadoop-lzo-0.4.15-cdh5.8.3.jar分發(fā)至集群所有節(jié)點;重啟集群。