zoukankan      html  css  js  c++  java
  • Hadoop【LZO压缩配置】

    一.编译

    hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。

    0. 环境准备
    maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像)
    gcc-c++
    zlib-devel
    autoconf
    automake
    libtool
    通过yum安装即可,yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool
    
    1. 下载、安装并编译LZO
    wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
    tar -zxvf lzo-2.10.tar.gz
    cd lzo-2.10
    ./configure -prefix=/usr/local/hadoop/lzo/
    make
    make install
    
    2. 编译hadoop-lzo源码
    
    2.1 下载hadoop-lzo的源码,下载地址:https://github.com/twitter/hadoop-lzo/archive/master.zip
    2.2 解压之后,修改pom.xml
        <hadoop.current.version>3.1.3</hadoop.current.version>
    2.3 声明两个临时环境变量
         export C_INCLUDE_PATH=/usr/local/hadoop/lzo/include
         export LIBRARY_PATH=/usr/local/hadoop/lzo/lib 
    2.4 编译
        进入hadoop-lzo-master,执行maven编译命令
        mvn package -Dmaven.test.skip=true
    2.5 进入target,hadoop-lzo-0.4.21-SNAPSHOT.jar 即编译成功的hadoop-lzo组件
    

    二.相关配置

    1)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-3.1.3/share/hadoop/common/

    [hadoop@hadoop102 common]$ pwd
    /opt/module/hadoop-3.1.3/share/hadoop/common
    [hadoop@hadoop102 common]$ ls
    hadoop-lzo-0.4.20.jar
    

    2)同步hadoop-lzo-0.4.20.jar到hadoop103、hadoop104节点

    xsync hadoop-lzo-0.4.20.jar
    

    3)core-site.xml增加配置支持LZO压缩

    <configuration>
        <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,
                org.apache.hadoop.io.compress.SnappyCodec,
                com.hadoop.compression.lzo.LzoCodec,
                com.hadoop.compression.lzo.LzopCodec
            </value>
        </property>
    
        <property>
            <name>io.compression.codec.lzo.class</name>
            <value>com.hadoop.compression.lzo.LzoCodec</value>
        </property>
    </configuration>
    

    4)同步core-site.xml到hadoop103、hadoop104

    xsync core-site.xml
    

    5)重启集群,后mr和hive可以使用LZO压缩。

    三.为LZO文件创建索引

    默认的.lzo压缩文件是不可以进行分片的,计算只能1个MapReduce程序,可以给.lzo文件创建索引,后续该.lzo文件可以进行分片。

    如:为big_file.lzo文件创建索引

    // haodoop jar 编译好的jar包  全类名  .lzo文件
    hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer big_file.lzo
    
  • 相关阅读:
    Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
    Qt 下快速读写Excel指南(尘中远)
    QT 那些事
    安卓环境下,通过QT调用jar包
    android使用C/C++调用SO库
    雷军曾定下目标,2017年将聚焦5大核心战略,分别是:黑科技、新零售、国际化、人工智能和互联网金融五大部分
    Maven和Gradle
    链接生成接口
    孤儿进程和僵尸进程
    Case when 的使用方法
  • 原文地址:https://www.cnblogs.com/wh984763176/p/13295037.html
Copyright © 2011-2022 走看看