1.安装:
(1)安装依赖:
yum -y install lzo-devel zlib-devel gcc autoconf automake libtool
(2)安装maven
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz tar -xzvf apache-maven-3.5.3-bin.tar.gz
修改环境变量 vi /etc/profile, 添加下面两句(路径按自己的写)
export MAVEN_HOME=/data/apache-maven-3.5.3 export PATH=$PATH:$MAVEN_HOME/bin source /etc/profile
(3)安装 lzop native library
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz tar -zxvf lzo-2.06.tar.gz cd lzo-2.06 export CFLAGS=-m64 ./configure -enable-shared -prefix=/usr/local/hadoop/lzo/ make && sudo make install
编译完lzo包之后,会在/usr/local/hadoop/lzo/生成一些文件,将/usr/local/hadoop/lzo目录下的所有文件打 包,并同步到集群中的所有机器上。
(4)安装hadoop-lzo
wget https://github.com/twitter/hadoop-lzo/archive/master.zip unzip master cd hadoop-lzo-master
vi修改pom.xml文件,hadoop.current.version改成实际的hadoop版本(我测试用的是2.8.1))
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.current.version>2.8.1</hadoop.current.version> <hadoop.old.version>1.0.4</hadoop.old.version> </properties>
执行命令
export ACFLAGS=-m64 export CXXFLAGS=-m64 export C_INCLUDE_PATH=/usr/local/hadoop/lzo/include export LIBRARY_PATH=/usr/local/hadoop/lzo/lib mvn clean package -Dmaven.test.skip=true cd target/native/Linux-amd64-64 tar -cBf - -C lib . | tar -xBvf - -C ~ cp ~/libgplcompression* $HADOOP_HOME/lib/native/
注意target下的包的版本号(这里测试是0.4.21,其他环境版本号会不同)
cp target/hadoop-lzo-0.4.21-SNAPSHOT.jar $HADOOP_HOME/share/hadoop/common/
执行完tar -cBf – -C lib . | tar -xBvf – -C ~后,会在~目录下生成一下几个文件,其中libgplcompression.so 和libgplcompression.so.0是链接文件,指向libgplcompression.so.0.0.0,将刚刚生成的libgplcompression* 和target/hadoop-lzo-0.4.21-SNAPSHOT.jar同步到集群中的所有机器对应的目录。
(5)hadoop中配置lzo
修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加下面语句
export LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib
修改$HADOOP_HOME/etc/hadoop/core-site.xml
<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.LzopCodec, com.hadoop.compression.lzo.LzoCodec </value> </property> <!-- lzop --> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzopCodec</value> </property>
修改$HADOOP_HOME/etc/hadoop/mapred-site.xml
<!--设置map中间结果使用 lzop 压缩--> <property> <name>mapreduce.map.output.compress</name> <value>true</value> </property> <property> <name>mapreduce.map.output.compress.codec</name> <value>com.hadoop.compression.lzo.LzopCodec</value> </property> <!--设置map/reduce 整个过程使用 lzop 压缩 --> <property> <name>mapreduce.output.fileoutputformat.compress</name> <value>true</value> </property> <!-- lzop --> <property> <name>mapreduce.output.fileoutputformat.compress.codec</name> <value>com.hadoop.compression.lzo.LzopCodec</value> </property> <property> <name>mapred.child.env</name> <value>LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib</value> </property>
(6)lzop 安装
wget http://www.lzop.org/download/lzop-1.03.tar.gz tar -xzvf lzop-1.03.tar.gz cd lzop-1.03 ./configure && make && make install
2.准备数据
(1)生成1w条数据保存在uuid.txt文件中
for i in {1..100000};do echo uuid${i} >> uuid.txt ;done
(2)生成lzo文件
lzop uuid.txt
(3)du -sh * 查看文件大小, lzo文件大约只有文本文件的38%左右大小
上传到hdfs上
hadoop dfs -mkdir /data/ hadoop dfs -put uuid.txt.lzo /data/
(4)生成lzo索引(注意jar的版本)
- 本地运行程序建立索引(比较慢): com.hadoop.compression.lzo.LzoIndexer
- mapreduce程序建立索引(比较快): com.hadoop.compression.lzo.DistributedLzoIndexer
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar com.hadoop.compression.lzo.DistributedLzoIndexer /data/uuid.txt.lzo
(5)hadoop dfs -ls /data/ 查看hdfs目录,索引已生成
相关推荐
hadoop支持LZO压缩配置 将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/ core-site.xml增加配置支持LZO压缩 <name>io.compression.codecs org.apache.hadoop.io....
hadoop lzo 压缩算法的所有工程,包括hadoop-lzo-master,编译好之后的target文件夹和hadoop-lzo-0.4.20-SNAPSHOT.jar文件。复制到eclipse中,可以直接使用lzo压缩算法。
hadoop lzo 压缩jar包,本人已经编译好,提供大家下载。
配置hadoop支持LZO和snappy压缩
hadoop-lzo-0.4.21-SNAPSHOT.jar是hadoop数据压缩lzo工具包
hadoop配置支持LZO压缩必备,版本号hadoop-lzo-0.4.20-SNAPSHOT.jar,
将生成的 build/hadoop-lzo-0.4.15.jar cp 到 /usr/local/hadoop-1.0.2/lib 测试解压程序 bin/hadoop jar /usr/local/hadoop-1.0.2/lib/hadoop-lzo-0.4.15.jar ...
22、MapReduce使用Gzip压缩、Snappy压缩和Lzo压缩算法写文件和读取相应的文件 网址:https://blog.csdn.net/chenwewi520feng/article/details/130456088 本文的前提是hadoop环境正常。 本文最好和MapReduce操作常见...
LZO:实时数据压缩库 hadoop-LZO:hadoop中可切割数据的LZO压缩 资源包含:lzo-2.06.tar.gz, hadoop-lzo-master.zip
hdfs默认不支持lzo压缩,需要通过将lzo源码融入hadoop源码,重新编译hadoop源码;或者编译lzo源码生成jar,作为插件使用
Hadoop IO操作压缩的lzo算法的jar包,中间包含LzoCodec,和LzoPCodec
Lzo压缩、解压缩安装包。包括Lzo,Lzop,hadoop-lzo的安装包。在Linux,AIX亲测可用。
hadoop 的lzo压缩源码包tar.gz,其中包括lzo-2.06.tar.gz和lzo-2.10.tar.gz两个版本,可供选择
java用于解压缩lzo文件的jar包