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是一个不可或缺的开源框架,它为海量数据的存储和处理提供了强大支持。而在数据压缩方面,Hadoop LZO是其中一种常用的数据压缩工具,本文将详细介绍这个工具...
《Hadoop与LZO压缩:深入理解hadoop-lzo-0.4.15.tar.gz》 在大数据处理领域,Hadoop是不可或缺的核心组件,它为海量数据的存储和计算提供了分布式解决方案。而LZO(Lempel-Ziv-Oberhumer)是一种高效的无损数据压缩...
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压缩解决方案,它提供了一种高效的数据压缩方式,尤其适合大数据处理场景,通过这个特定版本的库,开发者可以在Mac环境下为Hadoop 2.8.0实现LZO压缩功能,提升数据处理的...
hadoop lzo 压缩算法的所有工程,包括hadoop-lzo-master,编译好之后的target文件夹和hadoop-lzo-0.4.20-SNAPSHOT.jar文件。复制到eclipse中,可以直接使用lzo压缩算法。
hadoop lzo 压缩jar包,本人已经编译好,提供大家下载。
2. **生成LZO压缩文件**:可以使用Hadoop的命令行工具,如`hadoop fs -put`和`hadoop fs -get`,配合`-compress codec=lzo`参数来创建和下载LZO压缩的文件。 3. **处理压缩数据**:在MapReduce作业中,必须声明使用...
- `hadoop-lzo-0.4.20.jar`:这是一个已经编译好的Hadoop-LZO库,可以直接添加到Hadoop的类路径中,以便在不修改Hadoop源码的情况下使用LZO压缩。 - `hadoop-lzo-master.zip`:这是Hadoop-LZO项目的源代码,用户可以...
【标题】"lzo 2.0.6、hadoop-lzo-master、apache-maven" 涉及的主要是三个关键元素:LZO压缩库、Hadoop-LZO项目以及Apache Maven,这些都是在大数据处理和软件构建领域的重要工具。 【LZO 2.0.6】: LZO(Lempel-...
在Hadoop中,LZO压缩可以提高数据存储效率,降低存储成本,同时在MapReduce作业中,通过预压缩数据,可以减少网络传输的负担,提高集群性能。 标题提到的“hadoop-lzo所需包”指的是为了在Hadoop环境中使用LZO压缩...
hadoop配置支持LZO压缩必备,版本号hadoop-lzo-0.4.20-SNAPSHOT.jar,
而“hadoop-lzo-master.zip”则是Hadoop-LZO项目的源代码,通常包含了项目的所有文件,包括Java源代码、构建脚本和文档,用户可以下载并根据指导进行编译和部署,以在Hadoop集群上启用LZO压缩功能。 在大数据处理中...
Hadoop与LZO压缩 Hadoop是一个开源框架,主要用于处理和存储大规模数据,它由Apache软件基金会开发。在大数据处理领域,Hadoop以其分布式计算模型(MapReduce)和可扩展性而闻名。为了提高数据存储和传输效率,...
Hadoop-lzo是针对Hadoop生态系统优化的Lzo实现,它允许Hadoop集群在MapReduce作业中直接处理Lzo压缩的文件。Hadoop-lzo不仅包含了对Lzo库的集成,还提供了一个名为`GzipIndexer`的工具,用于创建Lzo文件的索引,使得...