因为集群本身是不支持lzo压缩的,所以需要我们自行安装配置。
环境:
- hdp 3.1.4
- hadoop-lzo : 0.4.21
- lzo :2.10
安装步骤如下:
在源码编译安装之前需要做一些准备工作:
1. yum -y install *lzo* (为了后续安装lzop)
2. yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool
3. wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
4.tar -zxvf lzo-2.10.tar.gz
5.cd lzo-2.10/
6. ./configure -prefix=/usr/local/lzo/
7. make
8. make install
hadoop-lzo源码编译:
1. git clone https://github.com/twitter/hadoop-lzo/archive/master.zip
2.unzip master.zip
3.cd hadoop-lzo-master
4.修改pom文件,适配集群版本.找到hadoop.current修改版本号:
<hadoop.current.version>2.7.1</hadoop.current.version> --> 3.1.1
5.mvn package -Dmaven.test.skip=true
6.编译完成之后,将jar包放到hdp的hadoop lib目录下:
7.分发到其他节点的同目录下。
8.修改配置文件:
core-site:
<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</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
9.
10.重启集群。进行测试。
登入hive:
如果报class not found com.hadoop.mapred.DeprecatedLzoTextInputFormat。需要记得重启集群。
11.
通过lzop命令将普通文件变成lzo文件。
lzop a.txt
12. load data local inpath '/home/hadoop/a.txt.lzo' into table lzo_test; 测试成功。