`
功夫小当家
  • 浏览: 186777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop lzo压缩

阅读更多

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目录,索引已生成

 

 

  • 大小: 14.4 KB
  • 大小: 2.1 KB
  • 大小: 10 KB
  • 大小: 11.4 KB
分享到:
评论

相关推荐

    hadoop-lzo-0.4.21-SNAPSHOT.jar

    《Hadoop LZO压缩工具详解》 在大数据处理领域,Hadoop是一个不可或缺的开源框架,它为海量数据的存储和处理提供了强大支持。而在数据压缩方面,Hadoop LZO是其中一种常用的数据压缩工具,本文将详细介绍这个工具...

    hadoop-lzo-0.4.15.tar.gz

    《Hadoop与LZO压缩:深入理解hadoop-lzo-0.4.15.tar.gz》 在大数据处理领域,Hadoop是不可或缺的核心组件,它为海量数据的存储和计算提供了分布式解决方案。而LZO(Lempel-Ziv-Oberhumer)是一种高效的无损数据压缩...

    hadoop-lzo-0.4.20.jar

    hadoop支持LZO压缩配置 将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/ core-site.xml增加配置支持LZO压缩 &lt;name&gt;io.compression.codecs org.apache.hadoop.io....

    hadoop-lzo-0.4.21-SNAPSHOT jars

    总的来说,Hadoop-LZO是一个针对Hadoop的LZO压缩解决方案,它提供了一种高效的数据压缩方式,尤其适合大数据处理场景,通过这个特定版本的库,开发者可以在Mac环境下为Hadoop 2.8.0实现LZO压缩功能,提升数据处理的...

    hadoop-lzo-master.zip

    hadoop lzo 压缩算法的所有工程,包括hadoop-lzo-master,编译好之后的target文件夹和hadoop-lzo-0.4.20-SNAPSHOT.jar文件。复制到eclipse中,可以直接使用lzo压缩算法。

    hadoop-lzo-0.4.20-SNAPSHOT.jar 包

    hadoop lzo 压缩jar包,本人已经编译好,提供大家下载。

    lzo-2.06.tar.gz/lzo-2.10.tar.gz

    2. **生成LZO压缩文件**:可以使用Hadoop的命令行工具,如`hadoop fs -put`和`hadoop fs -get`,配合`-compress codec=lzo`参数来创建和下载LZO压缩的文件。 3. **处理压缩数据**:在MapReduce作业中,必须声明使用...

    2.Hadoop-lzo.7z lzo源码+包

    - `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 2.0.6、hadoop-lzo-master、apache-maven" 涉及的主要是三个关键元素:LZO压缩库、Hadoop-LZO项目以及Apache Maven,这些都是在大数据处理和软件构建领域的重要工具。 【LZO 2.0.6】: LZO(Lempel-...

    hadoop-lzo所需包

    在Hadoop中,LZO压缩可以提高数据存储效率,降低存储成本,同时在MapReduce作业中,通过预压缩数据,可以减少网络传输的负担,提高集群性能。 标题提到的“hadoop-lzo所需包”指的是为了在Hadoop环境中使用LZO压缩...

    hadoop-lzo-0.4.20-SNAPSHOT.jar

    hadoop配置支持LZO压缩必备,版本号hadoop-lzo-0.4.20-SNAPSHOT.jar,

    lzo-2.06&hadoop;-lzo

    而“hadoop-lzo-master.zip”则是Hadoop-LZO项目的源代码,通常包含了项目的所有文件,包括Java源代码、构建脚本和文档,用户可以下载并根据指导进行编译和部署,以在Hadoop集群上启用LZO压缩功能。 在大数据处理中...

    hadoop-lzo.zip

    Hadoop与LZO压缩 Hadoop是一个开源框架,主要用于处理和存储大规模数据,它由Apache软件基金会开发。在大数据处理领域,Hadoop以其分布式计算模型(MapReduce)和可扩展性而闻名。为了提高数据存储和传输效率,...

    Lzo压缩安装包

    Hadoop-lzo是针对Hadoop生态系统优化的Lzo实现,它允许Hadoop集群在MapReduce作业中直接处理Lzo压缩的文件。Hadoop-lzo不仅包含了对Lzo库的集成,还提供了一个名为`GzipIndexer`的工具,用于创建Lzo文件的索引,使得...

Global site tag (gtag.js) - Google Analytics