第一步:安装 LZO库。
(hadoop 用户在 home 目录下新建的文件夹 LZO,以下所有的安装均在这个目录下)
-
安装
lzo:wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz。 -
解压。
-
进入解压目录。
-
编译参数。
-
本例安装在
/home/LZO/lzo2.10目录下(lzo2.10)为新建文件夹。 -
编译命令
./configure --enable-shared --prefix=/home/LZO/lzo2.10。
-
-
编译安装:
make && make install。 -
进入安装目录
/home/LZO/lzo2.10。 -
执行命令。
cp -r lib/* /usr/lib/ cp -r lib/* /home/hadoop/hadoop/hadoop-2.7.2/lib/native/
注意
-
64位的系统执行如下命令:
cp -r lib/* /usr/lib64/ cp -r lib/* /home/hadoop/hadoop/hadoop-2.7.2/lib/native/Linux-amd64-64/ -
教程里执行的命令是:
cp -r lib/* /home/hadoop/hadoop/hadoop-2.7.2/lib/native/Linux-i386-32/但是我没找到Linux-i386-32这个目录。
第二步:安装 hadoop-lzo 包。
-
安装
hadoop-lzo:wget https://github.com/twitter/hadoop-lzo/archive/master.zip --no-check-certificate -O master.zip。 -
解压
unzip master.zip。 -
编译。
-
修改目录
hadoop-lzo-master里的pom.xml,把hadoop.current.version的属性修改成自己使用版本的。 -
进入
hadoop-lzo-master目录,执行:export C_INCLUDE_PATH=/home/LZO/lzo-2.10/include export LIBRARY_PATH=/home/LZO/lzo-2.10/lib
-
然后编译 mvn clean package -Dmaven.test.skip=true。`
把编译好的文件拷贝到对应目录:
cp target/native/Linux-amd64-64/* /home/hadoop/hadoop/hadoop-2.7.2/lib/native/ cp target/hadoop-lzo-0.4.21-SNAPSHOT.jar /home/hadoop/hadoop/hadoop-2.7.2/share/hadoop/mapreduce/lib
注意
-
这里用到了
Maven,首先先保证Maven已经安装,并配置成功。 -
当执行
mvn clean package -Dmaven.test.skip=true命令出错的时候,试在清空Maven加载架包生成的目录。
第三步:修改配置文件。
-
在
Hadoop中的/home/hadoop/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh加上export LIBRARY_PATH=/home/LZO/lzo-2.10/lib。 -
在
Hadoop中的/home/hadoop/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml加上。io.compression.codecs org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.DefaultCodec, com.hadoop.compression.lzo.LzoCodec, com.hadoop.compression.lzo.LzopCodec, org.apache.hadoop.io.compress.BZip2Codec io.compression.codec.lzo.class com.hadoop.compression.lzo.LzoCodec
-
在
Hadoop中的/home/hadoop/hadoop/hadoop-2.7.2/etc/hadoop/mapred-site.xml加上。mapred.compress.map.output true mapred.map.output.compression.codec com.hadoop.compression.lzo.LzoCodec mapred.child.env LD_LIBRARY_PATH=/home/LZO/lzo-2.10/lib
第四步:验证。
在 Hive 里新建一个表:
create table lzo( id int, name string) STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
没有报错,及初步成功。