hadoop 压缩 gzip biz2 lzo snappy

Hadoop-LZO高效压缩库详解与实战应用 Hadoop-LZO是Hadoop生态系统中一种高效的压缩库,它将LZO压缩算法与Hadoop的分布式处理能力相结合,旨在优化大数据处理过程中的I/O性能。LZO压缩算法以压缩速度快、解压效率高而著称,虽然其压缩比略逊于GZIP,但在对实时性要求较高的大数据场景中表现出色。Hadoop-LZO通过引入本地库(Native Library)支持,进一步提升了压缩与解压性能,适用于日志处理、流式数据管道等高吞吐场景。 阅读详情

转载于:http://aperise.iteye.com/blog/2397398

集成snappy和LZO压缩格式的一般步骤如下:

 

  • 1)编译hadoop-xxx-master.zip得到一个hadoop-xxx-0.0.1-SNAPSHOT.jar和native/Linux-amd64-64/*.so等文件;
  • 2)拷贝上面的jar和so文件到hadoop或者hbase的目录

    优雅的做法是:

  • 1)编译hadoop-xxx-master.zip得到一个hadoop-xxx-0.0.1-SNAPSHOT.jar和native/Linux-amd64-64/*.so等文件;
  • 2)拷贝上面的jar到hadoop或者hbase的目录
  • 3)配置环境变量LD_LIBRARY_PATH,把所有的相关so文件目录都放进去,比如export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native:/usr/local/lib:/usr/local/lzo-2.10/lib

1.Apache hadoop默认安装包不支持Snappy和LZO原因

    Apache hadoop官网提供的hadoop版本本身就支持Bzip2、Gzip、DEFLATE3种压缩格式,不支持Snappy和LZO格式,原因是Snappy和LZO的代码库拥有GPL开源协议许可,而不是Apache开源协议许可,关于Snappy和LZO需要hadoop运维或者hadoop提供商自己集成。关于开源代码协议GPL、BSD、MIT、Mozilla、Apache和LGPL的区别详见下图:

2.hadoop压缩优点

  • 减少了存储文件所需的空间
  • 加速了网络、磁盘或磁盘的数据传输

3.选择hadoop文件压缩格式考虑三个因素

  • 文件压缩比例
  • 文件解压缩效率
  • 该压缩格式的文件是否可被切分,不能切分直接影响mapreduce的map的个数,从而导致mapreduce效率低下

4.压缩格式优缺点以及应用场景

    默认Apache hadoop官网下载的安装文件默认就支持Bzip2、Gzip、DEFLATE3种压缩格式,但是不支持Snappy和LZO压缩格式。因为Snappy和LZO代码库拥有GPL许可,所以没有包含在Apache的发行版本中。

 4.1 DEFLATE压缩

    DEFLATE是一个标准压缩算法,该算法的标准实现是zlib。没有可用于生成EFLATE文件的常用linux命令工具,因为通常都不会用这个格式,而用gzip格式。gzip文件格式只是在DEFLATE格式上增加了文件头和一个文件尾。其文件以.deflate结尾。

 4.2 gzip压缩

  优点:

  • 压缩率比较高,而且压缩/解压速度也比较快;
  • hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;
  • 有hadoop native库;
  • 大部分linux系统都自带gzip命令,使用方便

  缺点:

  • 不支持split

  应用场景:

    当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip压缩格式。譬如说一天或者一个小时的日志压缩成一个gzip文件,运行mapreduce程序的时候通过多个gzip文件达到并发。hive程序,streaming程序,和java写的mapreduce程序完全和文本处理一样,压缩之后原来的程序不需要做任何修改。

  4.3 bzip2压缩

  优点:

  • 支持split;
  • 具有很高的压缩率,比gzip压缩率都高;
  • hadoop本身支持,但不支持native;
  • 在linux系统下自带bzip2命令,使用方便

  缺点:

  • 压缩/解压速度慢;
  • 不支持native

  应用场景:

    适合对速度要求不高,但需要较高的压缩率的时候,可以作为mapreduce作业的输出格式;或者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况;或者对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序(即应用程序不需要修改)的情况。

  4.4 lzo压缩

  优点:

  • 压缩/解压速度也比较快,合理的压缩率;
  • 支持split,是hadoop中最流行的压缩格式;
  • 支持hadoop native库;
  • 可以在linux系统下安装lzop命令,使用方便

  缺点:

  • 压缩率比gzip要低一些;
  • hadoop本身不支持,需要安装;
  • 在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)

  应用场景:

    一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,lzo优点越越明显

  4.5 LZ4压缩

  优点:

  • 高速压缩解压库, 压缩率为 zlib 2/3, 但速度很高;

  缺点:

  • linux系统下没有对应的命令;
  • 不支持split;
  • 不支持流式操作

  4.6 snappy压缩

  优点:

  • 高速压缩速度和合理的压缩率;
  • 支持hadoop native库

  缺点:

  • 不支持split;
  • 压缩率比gzip要低;
  • hadoop本身不支持,需要安装;
  • linux系统下没有对应的命令

  应用场景:

    当mapreduce作业的map输出的数据比较大的时候,作为map到reduce的中间数据的压缩格式;或者作为一个mapreduce作业的输出和另外一个mapreduce作业的输入。
 

 

5.集成LZO到Apache hadoop中

    关于LZO如何集成到Apache hadoop可以详见GitHub上hadoop-lzo的源代码https://github.com/twitter/hadoop-lzo说明,这里下面的步骤也是我参照源代码经过实践得来,关于更详细的内容(必须的依赖库,如何安装,如何处理安装中LZO找不到,如何去使用LZO)请参见源代码说明。

    如果你在hadoop权威指南里看到LZO的源代码库为https://github.com/kevinweil/hadoop-lzo,不足为奇,这个源代码库依然在GitHub中,它采用的是ant进行编译,不过已经6年未更新了,新的hadoop-lzo源代码已经转移到https://github.com/twitter/hadoop-lzo,如果你非得使用https://github.com/kevinweil/hadoop-lzo,请参见本文的第7节进行集成。

  5.1 hadoop-lzo在github上的代码库地址(https://github.com/twitter/hadoop-lzo)

 

  5.2 源代码编译前的准备工作

    (1) linux库LZO的安装

    ubuntu中使用apt-get install lzo安装,centos中使用yum -y install lzo安装,这里我个人习惯下载lzo源代码然后编译安装。

    注意:这里的linux库LZO需要在hadoop集群的每个节点都需要安装。

 

#linux安装lzo
#下载并解压linux库lzo源代码
cd /root
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
tar -zxvf lzo-2.10.tar.gz
#编译安装linuxlzo源代码
cd /root/lzo-2.10
#这里我指定安装linux的lzo库到linux机器的/usr/local/lzo-2.10目录
./configure --enable-shared --prefix /usr/local/lzo-2.10
make
make install

    (2)JDK安装

#安装jdk-7u65-linux-x64.gz
#下载jdk-7u65-linux-x64.gz放置于/opt/java/jdk-7u65-linux-x64.gz并解压
cd /opt/java/
tar -zxvf jdk-7u65-linux-x64.gz
#配置linux系统环境变量
vi /etc/profile
#在文件末尾追加如下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin 
#使配置生效
source /etc/profile
#检查JDK环境是否配置成功
java -version

    (3)MAVEN安装

#1.下载apache-maven-3.3.3.tar.gz放置于/opt/下并解压
cd /opt
tar zxvf apache-maven-3.3.3.tar.gz
#2.配置环境变量
vi /etc/profile
#添加如下内容
MAVEN_HOME=/opt/apache-maven-3.3.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
#3.使配置生效
source /etc/profile
#4.检测maven是否安装成功
mvn -version
#5.配置maven仓库镜像,目前国内maven镜像建议使用阿里云库
vi /home/hadoop/.m2/settings.xml
#内容如下:
<?xml version="1.0" encoding="UTF-8"?>  
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  <!--默认下载依赖放置于/home/hadoop/.m2/repository目录下,这里我指定我想存放于/opt/maven-localRepository-->  
  <localRepository>/opt/maven-localRepository</localRepository>  
  <pluginGroups></pluginGroups>  
  <proxies></proxies>  
  <servers></servers>  
  <mirrors>  
  <!--add by aperise start-->  
    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror>    
  <!--add by aperise end-->  
  </mirrors>  
  <profiles>  
  </profiles>  
</settings>  

  5.3 hadoop-lzo库编译安装

#下载并解压源代码hadoop-lzo-master
cd /home/hadoop
wget https://github.com/twitter/hadoop-lzo/archive/hadoop-lzo-master.zip
unzip hadoop-lzo-master.zip
cd /home/hadoop/hadoop-lzo-master
#注意以下三行一起执行,前两行是指定LZO库文件所在位置,注意和之前安装的linux库LZO所在位置保持一致
C_INCLUDE_PATH=/usr/local/lzo-2.10/include \
LIBRARY_PATH=/usr/local/lzo-2.10/lib \
mvn clean package -DskipTests

    编译完成后会在/home/hadoop/hadoop-lzo-master/target下得到如下文件:

    其中hadoop-lzo-0.4.21-SNAPSHOT.jar和native就是我们需要的jar和库文件,在后面只需要拷贝jar和native下面的库文件到hadoop下即可完成集成,这里在/home/hadoop/hadoop-lzo-master/target/native/Linux-amd64-64/lib的库文件如下:

  5.4 集成hadoop-lzo库到hadoop-2.7.4

    需要拷贝hadoop-lzo-0.4.21-SNAPSHOT.jar到/home/hadoop/hadoop-2.7.4/share/hadoop/common/lib/下面,需要拷贝/home/hadoop/hadoop-lzo-master/target/native/Linux-amd64-64/lib/下的文件到/home/hadoop/hadoop-2.7.4/lib/native/下面

cp -r /home/hadoop/hadoop-lzo-master/target/native/Linux-amd64-64/lib/* /home/hadoop/hadoop-2.7.4/lib/native/
cp -r /home/hadoop/hadoop-lzo-master/target/hadoop-lzo-0.4.21-SNAPSHOT.jar /home/hadoop/hadoop-2.7.4/share/hadoop/common/lib/

6.集成Snappy到Apache hadoop中

    关于Snappy如何集成到Apache hadoop可以详见GitHub上hadoop-snappy的源代码https://github.com/electrum/hadoop-snappy说明,这里下面的步骤也是我参照源代码经过实践得来,关于更详细的内容(必须的依赖库,如何安装)请参见源代码说明。

  6.1 hadoop-snappy在github上的代码库地址(https://github.com/electrum/hadoop-snappy)

  6.2 源代码编译前的准备工作

    (1) linux库Snappy的安装

    ubuntu中使用apt-get install snappy安装,centos中使用yum -y install snappy安装,这里我个人习惯下载snappy源代码然后编译安装。

    注意:这里的linux库LZO需要在hadoop集群的每个节点都需要安装。

    (2)JDK安装

#安装jdk-7u65-linux-x64.gz
#下载jdk-7u65-linux-x64.gz放置于/opt/java/jdk-7u65-linux-x64.gz并解压
cd /opt/java/
tar -zxvf jdk-7u65-linux-x64.gz
#配置linux系统环境变量
vi /etc/profile
#在文件末尾追加如下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin 
#使配置生效
source /etc/profile
#检查JDK环境是否配置成功
java -version

    (3)MAVEN安装

#1.下载apache-maven-3.3.3.tar.gz放置于/opt/下并解压
cd /opt
tar zxvf apache-maven-3.3.3.tar.gz
#2.配置环境变量
vi /etc/profile
#添加如下内容
MAVEN_HOME=/opt/apache-maven-3.3.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
#3.使配置生效
source /etc/profile
#4.检测maven是否安装成功
mvn -version
#5.配置maven仓库镜像,目前国内maven镜像建议使用阿里云库
vi /home/hadoop/.m2/settings.xml
#内容如下:
<?xml version="1.0" encoding="UTF-8"?>  
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  <!--默认下载依赖放置于/home/hadoop/.m2/repository目录下,这里我指定我想存放于/opt/maven-localRepository-->  
  <localRepository>/opt/maven-localRepository</localRepository>  
  <pluginGroups></pluginGroups>  
  <proxies></proxies>  
  <servers></servers>  
  <mirrors>  
  <!--add by aperise start-->  
    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror>    
  <!--add by aperise end-->  
  </mirrors>  
  <profiles>  
  </profiles>  
</settings>  

  6.3 hadoop-snappy库编译安装

#下载并解压源代码hadoop-snappy-master
cd /home/hadoop
wget https://github.com/electrum/hadoop-snappy/archive/hadoop-snappy-master.zip
unzip hadoop-snappy-master.zip
cd /home/hadoop/hadoop-snappy-master
#编译中如果遇到问题,请参见http://www.cnblogs.com/shitouer/archive/2013/01/14/2859475.html进行解决
mvn package

     编译完成后会在/home/hadoop/hadoop-snappy-master/target下得到如下文件:

    其中hadoop-snappy-0.0.1-SNAPSHOT.tar.gz就是我们需要的文件,里面包含hadoop-snappy-0.0.1-SNAPSHOT.jar和相关库文件。

  6.4 集成hadoop-snappy库到hadoop-2.7.4

   需要拷贝hadoop-snappy-0.0.1-SNAPSHOT.jar到/home/hadoop/hadoop-2.7.4/share/hadoop/common/lib/下面,需要拷贝/home/hadoop/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/下的文件到/home/hadoop/hadoop-2.7.4/lib/native/下面

#解压hadoop-snappy-0.0.1-SNAPSHOT.tar.gz
cp /home/hadoop/hadoop-snappy-master/target/hadoop-snappy-0.0.1-SNAPSHOT.tar.gz /home/hadoop/
cd /home/hadoop
tar -zxvf hadoop-snappy-0.0.1-SNAPSHOT.tar.gz
#拷贝jar和库到
cp -r /home/hadoop/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/* /home/hadoop/hadoop-2.7.4/lib/native/
cp -r /home/hadoop/hadoop-snappy-0.0.1-SNAPSHOT/lib/hadoop-snappy-0.0.1-SNAPSHOT.jar /home/hadoop/hadoop-2.7.4/share/hadoop/common/lib

 

7.集成LZO到Apache hadoop中(另一个hadoop-lzo库,GitHub已经6年未更新,不建议用,因为hadoop权威指南提到,这里把实践的集成记录一下)

    关于LZO如何集成到Apache hadoop可以详见GitHub上hadoop-lzo的源代码https://github.com/kevinweil/hadoop-lzo说明,这里下面的步骤也是我参照源代码经过实践得来,关于更详细的内容(必须的依赖库,如何安装,如何处理安装中LZO找不到,如何去使用LZO)请参见源代码说明。

  7.1 hadoop-lzo在github上的代码库地址(https://github.com/kevinweil/hadoop-lzo)

  7.2 源代码编译前的准备工作

    (1) linux库LZO的安装

    ubuntu中使用apt-get install lzo安装,centos中使用yum -y install lzo安装,这里我个人习惯下载lzo源代码然后编译安装。

    注意:这里的linux库LZO需要在hadoop集群的每个节点都需要安装。

 

#linux安装lzo
#下载并解压linux库lzo源代码
cd /root
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
tar -zxvf lzo-2.10.tar.gz
#编译安装linuxlzo源代码
cd /root/lzo-2.10
./configure --enable-shared
make
make install

    (2)JDK安装

#安装jdk-7u65-linux-x64.gz
#下载jdk-7u65-linux-x64.gz放置于/opt/java/jdk-7u65-linux-x64.gz并解压
cd /opt/java/
tar -zxvf jdk-7u65-linux-x64.gz
#配置linux系统环境变量
vi /etc/profile
#在文件末尾追加如下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin 
#使配置生效
source /etc/profile
#检查JDK环境是否配置成功
java -version

    (3)ANT安装

#下载并解压apache-ant-1.8.2-bin.zip
cd /home/hadoop
wget http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.8.2-bin.zip
unzip apache-ant-1.8.2-bin.zip
#编辑/home/hadoop/.bashrc,在文件末尾追加如下内容
vi /home/hadoop/.bashrc
export ANT_HOME=/opt/apache-ant-1.8.2
export PATH=${PATH}:${ANT_HOME}/bin
#使得/home/hadoop/.bashrc配置生效
source /home/hadoop/.bashrc
#测试ant是否生效
ant -version

  7.3 hadoop-lzo库编译安装

#编译安装hadoop-lzo-master
cd /home/hadoop
wget https://github.com/kevinweil/hadoop-lzo/archive/hadoop-lzo-master.zip
unzip hadoop-lzo-master.zip
cd /home/hadoop/hadoop-lzo-master
#注意以下三行一起执行,前两行是指定LZO库文件所在位置
CFLAGS=-m64 \
CXXFLAGS=-m64 \
ant compile-native tar

    编译完成后会在/home/hadoop/hadoop-lzo-master/build下得到如下文件:

    其中hadoop-lzo-0.4.15-SNAPSHOT.jar和native就是我们需要的jar和库文件,在后面只需要拷贝jar和native下面的库文件到hadoop下即可完成集成,这里在/home/hadoop/hadoop-lzo-master/build/native/Linux-amd64-64/lib的库文件如下:

  7.4 集成hadoop-lzo库到hadoop-2.7.4

    需要拷贝hadoop-lzo-0.4.15-SNAPSHOT.jar到/home/hadoop/hadoop-2.7.4/share/hadoop/common/lib/下面,需要拷贝/home/hadoop/hadoop-lzo-master/target/native/Linux-amd64-64/lib/下的文件到/home/hadoop/hadoop-2.7.4/lib/native/下面

cp -r /home/hadoop/hadoop-lzo-master/build/native/Linux-amd64-64/lib/* /home/hadoop/hadoop-2.7.4/lib/native/
cp -r /home/hadoop/hadoop-lzo-master/build/hadoop-lzo-0.4.15-SNAPSHOT.jar /home/hadoop/hadoop-2.7.4/share/hadoop/common/lib/

    7.5 遇到的问题([javah] Error: Class org.apache.hadoop.conf.Configuration could not be found)

    编译中遇到的问题错误信息如下:

ivy-retrieve-common:
[ivy:retrieve] :: retrieving :: com.hadoop.gplcompression#Hadoop-GPL-Compression
[ivy:retrieve]  confs: [common]
[ivy:retrieve]  0 artifacts copied, 3 already retrieved (0kB/6ms)
[ivy:cachepath] DEPRECATED: 'ivy.conf.file' is deprecated, use 'ivy.settings.file' instead
[ivy:cachepath] :: loading settings :: file = /opt/hadoop-lzo-master/ivy/ivysettings.xml

init:

compile-java:
    [javac] /opt/hadoop-lzo-master/build.xml:243: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

check-native-uptodate:

compile-native:
    [javah] Error: Class org.apache.hadoop.conf.Configuration could not be found.

BUILD FAILED
/opt/hadoop-lzo-master/build.xml:266: compilation failed

    解决办法如下,修改/opt/hadoop-lzo-master/build.xml中如下内容:

  <target name="compile-native" depends="compile-java,check-native-uptodate" unless="native.uptodate">
    <mkdir dir="${build.native}/lib"/>
    <mkdir dir="${build.native}/src/com/hadoop/compression/lzo"/>

    <javah classpath="${build.classes}"
  	   destdir="${build.native}/src/com/hadoop/compression/lzo"
           force="yes"
  	   verbose="yes">
      <class name="com.hadoop.compression.lzo.LzoCompressor" />
      <class name="com.hadoop.compression.lzo.LzoDecompressor" />
    </javah>

为ant的target=compile-native指定classpath,修改后为:

  <target name="compile-native" depends="compile-java,check-native-uptodate" unless="native.uptodate">
    <mkdir dir="${build.native}/lib"/>
    <mkdir dir="${build.native}/src/com/hadoop/compression/lzo"/>

    <javah classpath="${build.classes}"
  	   destdir="${build.native}/src/com/hadoop/compression/lzo"
           force="yes"
  	   verbose="yes">
      <class name="com.hadoop.compression.lzo.LzoCompressor" />
      <class name="com.hadoop.compression.lzo.LzoDecompressor" />
      <classpath refid="classpath"/>
    </javah>

 

8.Apache hadoop中配置压缩

  8.1HDFS配置压缩

   注意:这里可以配置多个

    core-site.xml增加配置:

<property>
  <name>io.compression.codecs</name>
  <value>
  org.apache.hadoop.io.compress.DefaultCodec,
  org.apache.hadoop.io.compress.GzipCodec,
  org.apache.hadoop.io.compress.BZip2Codec,
  com.hadoop.compression.lzo.LzoCodec,
  com.hadoop.compression.lzo.LzopCodec,
  org.apache.hadoop.io.compress.Lz4Codec,
  org.apache.hadoop.io.compress.SnappyCodec
  </value>
  <description>A comma-separated list of the compression codec classes that can
  be used for compression/decompression. In addition to any classes specified
  with this property (which take precedence), codec classes on the classpath
  are discovered using a Java ServiceLoader.</description>
</property>

       注意:hadoop是根据文件的后缀去寻找编解码用哪个,之前认为com.hadoop.compression.lzo.LzoCodec对应的后缀为".lzo"是错误的,查看了hadoop-lzo源代码发现".lzo"对应的编解码为com.hadoop.compression.lzo.LzopCodec,查看了源代码发现".lzo_deflate"对应的编解码为com.hadoop.compression.lzo.LzoCodec

  8.2 MAPREDUCE配置压缩

   注意:这里只能配置采用一种

   mapred-site.xml增加配置:

<property>
  <name>mapreduce.output.fileoutputformat.compress</name>
  <value>true</value>
  <description>Should the job outputs be compressed?
  </description>
</property>
<property>
  <name>mapreduce.output.fileoutputformat.compress.type</name>
  <value>RECORD</value>
  <description>If the job outputs are to compressed as SequenceFiles, how should
               they be compressed? Should be one of NONE, RECORD or BLOCK.
  </description>
</property>
<property>
  <name>mapreduce.output.fileoutputformat.compress.codec</name>
  <value>org.apache.hadoop.io.compress.SnappyCodec</value>
  <description>If the job outputs are compressed, how should they be compressed?
  </description>
</property>
<property>
  <name>mapreduce.map.output.compress</name>
  <value>true</value>
  <description>Should the outputs of the maps be compressed before being
               sent across the network. Uses SequenceFile compression.
  </description>
</property>
<property>
  <name>mapreduce.map.output.compress.codec</name>
  <value>org.apache.hadoop.io.compress.SnappyCodec</value>
  <description>If the map outputs are compressed, how should they be 
               compressed?
  </description>
</property>
hadoop-snappy的jar包 hadoop中使用snappy算法,需要手工编译hadoop-snappy的包,但是这个包没有提供下载,需要花很大力气进行编译,现在把这个包提供出来 立即下载

相关推荐

hadoop-snappy-0.0.1-SNAPSHOT.jar

Apache-Hadoop中使用snappy算法,需要用到此jar包。通过Mvn几乎不可能从国外下载下来中

hadoop中压缩格式

压缩格式 hadoop自带? 算法 文件扩展名 是否可切分 换成压缩格式后,原来的程序是否需要修改 ...

mayaohao的博客 374

hadoop-snappy-0.0.1-SNAPSHOT.tar.gz

hadoop hbase支持snappy压缩jar包 解压后放到hbaselib目录重启

一百一十七、Hadoop——GZIP压缩并解压HDFS中的文件

GZIP压缩并解压HDFS中的文件

tiantang2renjian的博客 1956

hadoop-0.1.0

hadoop-0.1.0:最小版本的hadoop。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

hadoop2.5.0 snappy编译jar包

hadoop2.5.0 snappy编译jar包,解压到hadoop native目录下即可

压缩工具gzip、bzip2和tar

也就是说,gzip和bizp2都不能压缩文件夹,而tar可以压缩文件夹,并且可以将文件压缩成gzip和bizp2格式的压缩包,以及实现自动判断压缩格式并解压的操作。#gzip、bizp2和tar。

m0_56578216的博客 523

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2125

hadoopsnappy解压_hadoop-snappy-0.0.1-SNAPSHOT.tar.gz

【实例简介】hadoop hbase支持snappy压缩jar包解压后放到hbaselib目录重启【实例截图】【核心代码】hadoop-snappy-0.0.1-SNAPSHOT.tar└── hadoop-snappy-0.0.1-SNAPSHOT├── lib│ ├── hadoop-snappy-0.0.1-SNAPSHOT.jar│ └── native│ └── Li...

weixin_34094525的博客 249

ros2的unity仿真配置(ros2-for-unity)

可以看到unity中输出了Hello World,验证完毕!可以看到unity上监听的/chatter。

m0_63671696的博客 4093

斯坦福HumanPlus机器人核心技术解析:从HST强化学习框架到HIT模仿学习的实现路径

本文深入解析了斯坦福HumanPlus人形机器人的核心技术实现路径。其核心在于HST强化学习框架与HIT模仿学习架构的协同:HST作为“小脑”,通过rsl_rl框架在仿真中训练稳健的低级运动控制;HIT作为“大脑”,基于改进的Transformer架构学习高级任务规划。文章详细拆解了从算法原理、代码实现到硬件部署的全流程,为复现这一前沿机器人系统提供了实战指南。

weixin_29082143的博客 280

【Hadoop】学习笔记(七)

3.12、ETL数据清洗 3.13、数据压缩

lushixuan12345的博客 463

qt使用qxlsx实现xlsx、xls表格文件快速写入和读取

新年第二篇文章,收尾一个去年计划中发表文章和实现功能。

kbq的博客 1万+

Hadoop/Hbase的Snappy安装

一、Snappy安装环境: gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3 其中gcc一定要是4.4的版本。 二、下载Snappy 1.1.1 下载地址:http://code.google.com/p/snappy/downloads/list 三、编译Snappy ./config

lixucpf的专栏 2448

WorkBench3.2 + VxWorks6.8安装教程

按照FTP连接主机和目标机,将整个VxWorks6.8的安装分为两个部分,一是在主机(win10系统,可以使用虚拟机或者实体机,推荐使用虚拟机)上安装workbench3.2,进行bootrom与VxWroks映像文件的生成,二是在虚拟机上安装VxWorks系统 19.10.10 首先很高兴文章能帮到大家,但由于本人已不做该方向良久,私信和评论的很多问题现在已经无法解答,如果大家有什么问题欢迎...

Alive的博客 3万+

HyperLynx仿真(一)LineSim简单介绍

可以选择设置信号线与信号线之间默认的距离和信号线与同平面的平面之间的距离,这些设置根据工程师项目上经常使用的情况而设置,也可以选择不设置,在每次仿真时根据需要再对每一个仿真单独设置。仿真属性的设置对话框包含一般设置、 显示颜色设置、LineSim 设置、BoardSim 设置、 层叠默认设置、焊盘类型设置、仿真示波器默认设置、电路仿真器默认设置、电源完整性设置及高级设置。第一次使用HyperLynx软件时需要设置仿真相关环境,包括仿真软件的基本设置、模型库路径设置、仿真控制器控制、单位等。...

小幽余生不加糖 8946

hadoopsnappy解压_Hadoop的Snappy安装配置

1.snappy编译安装下载snappy,编译。前置条件:gcc c++, autoconf, automake, libtool, Java6, JAVA_HOME set, Maven 31)运行:autogen.sh2)运行:./configuremakemake checkmake install3)验证:查看/usr/local/lib下面是否有libsnappy.*4)拷贝到其他集群:...

weixin_33341108的博客 305

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

Hadoop 压缩实现分析

引子 随着云时代的来临,大数据(Big data)也获得了越来越多的关注。著云台的分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像 MapReduce 一样的框架来向数十、数百或甚至数千的电脑分配工作。 “大数据”在互

大数据技术杂谈 584

9.27华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

9.26华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

算法大师! 481

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

重新编译 Hadoop 2.7.2 native 以支持 snappy

重新编译 Hadoop 2.7.2 native 以支持 snappy

wzy0623的专栏 9697

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hadoop,hbase,hive 安装snappy压缩

最近又安装了一次hadoop系列,以前装过几次,但总也是磕磕碰碰的,本来想这次安装一步到位,可惜以前记录不够详细,中间还是过程还是有些遗漏,这次把过程详细记录起来。hadoop-1.1.2,  hbase-0.95-hadoop1, hive-0.10 + snappy压缩。中间遇到不少坑,记录下来;由于这次目标是三件套一步到位,因此配置的时候是一块配置了,三台ubuntu机器分别为zmhad

lgnlgn的专栏 4784

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Hadoop本地压缩库<转>

考虑到性能,最好使用一个本地库(native library)来压缩和解压。例如,在一个测试中,使用本地gzip压缩库减少了解压时间50%,压缩时间大约减少了10%(与内置的Java实现相比 较)。表4-4展示了Java和本地提供的每个压缩格式的实现。井不是所有的格式都有本地实现(例如bzip2压缩),而另一些则仅有本地实现(例如 LZO)。  压缩格式  Java实现

yongjian_luo的专栏 898

hadoop中的数据压缩

为什们要用压缩? 在大数据时代,每个互联网公司在日常运营中生成、累积的用户网络行为数据。这些数据的规模是如此庞大,以至于不能用 G 或 T 来衡量。所以如何高效的处理分析大数据的问题摆在了面前。那么我们应用数据压缩的目的有两个: - 1.减少了存储文件所占空间 - 2.为数据传输提速 压缩格式 Hadoop 对于压缩格式的是自动识别。如果我们压缩的文件有相应压缩格式的扩展名(比如 l

万磁王的博客 551
上一篇: 面试准备--二叉树的非递归遍历(Java版)
下一篇: Hadoop-lzo的安装和配置,亲测可用。
codeforces
博客等级 码龄12年 45粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值