(摘自:http://lxw1234.com/archives/2017/01/830.htm)
注:本文针对的是使用命令行安装和配置CDH Hadoop,如果你使用RPM或者ClouderaManager,基本可以忽略此文。
Hadoop在计算和存储过程中,支持对文件进行压缩,可以使用hadoop checknative命令来查看:
其中,像zlib、lz4、bzip2,会使用系统库,那么需要在Hadoop所在机器上先安装这些。
Snappy和Lzo,需要单独安装配置,CDH版本的hadoop,已经为每一个版本及操作系统编译好了Snappy和Lzo库(RPM),可以通过RPM来获得。
http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.8.3/RPMS/x86_64/
Snappy库可以从上面链接中的Hadoop RPM包中获取,注意:需要找到正确的操作系统及cdh版本,我使用的操作系统为centos 7,cdh5.8.3.
http://archive.cloudera.com/gplextras5/redhat/7/x86_64/gplextras/5.8.3/RPMS/x86_64/
Lzo库及jar包,可以从上面的链接中获得,仍然需要注意你的操作系统版本和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分发至集群所有节点;重启集群。