zoukankan      html  css  js  c++  java
  • 开启hadoop和Hbase集群的lzo压缩功能(转)

    原文链接:开启hadoop和Hbase集群的lzo压缩功能

    问题导读:
    1.如何启动hadoop、hbase集群的压缩功能?
    2.lzo的作用是什么?
    3.hadoop配置文件需要做哪些修改?






    首先我们明白一个概念:

    LZO 是致力于解压速度的一种数据压缩算法,LZO 是 Lempel-Ziv-Oberhumer 的缩写。


    安装前:
    # yum -y install  lzo-devel zlib-devel  gcc autoconf automakelibtool

    lzo-2.06.tar.gz下载地址:Index of /opensource/lzo/download

    1.(all) 在集群的所有节点上安装Lzo库,

    tar -zxvf lzo-2.06.tar.gz
    cd lzo-2.06
    # export CFLAGS=-m64                                   注:如果为32位系统改为export CFLAGS=-m32
    #./configure --enable-shared
    # make
    # make install


    库文件被默认安装到了/usr/local/lib,我们需要进一步指定lzo库文件的路径,两个方法都可以:
    1)      拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)

    1. #cp /usr/local/lib/liblzo2.* /usr/lib64
    复制代码


    2)在/etc/ld.so.conf.d/目录下新建lzo.conf文件,写入lzo库文件的路径,然后运行/sbin/ldconfig -v,使配置生效

    1. #vi /etc/ld.so.conf.d/lzo.conf
    2.   /usr/local/lib
    3. # /sbin/ldconfig -v
    复制代码






    2. 编译安装Hadoop Lzo本地库以及Jar包,这里采用twitter维护的,从这里下载
    https://github.com/twitter/hadoop-lzo
    修改pom.xml:

    1. <properties>
    2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    3.     <hadoop.current.version>2.1.0-beta</hadoop.current.version>
    4.     <hadoop.old.version>1.0.4</hadoop.old.version>
    5.   </properties>
    复制代码




    修改为

    1. <properties>
    2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    3.     <hadoop.current.version>2.2.0</hadoop.current.version>
    4.     <hadoop.old.version>1.0.4</hadoop.old.version>
    5.   </properties>
    复制代码





    hadoop-lzo-master.zip

    1. cd hadoop-lzo-master
    2. export CFLAGS=-m64                   注:如果为32位系统改为export CFLAGS=-m32
    3. export CXXFLAGS=-m64               注:如果为32位系统改为export CXXFLAGS=-m32
    4. export C_INCLUDE_PATH=/usr/local/include/lzo
    5. export LIBRARY_PATH=/usr/local/lib
    6. mvn clean package -Dmaven.test.skip=true
    复制代码




    接着把target/native/Linux-amd64-64/lib下的全部文件拷贝到${HADOOP_HOME}/lib/native,或者

    1. cp /build/native/Linux-amd64-64/lib/*  $HADOOP_HOME/lib/native/
    2. cp target/hadoop-lzo-0.4.20-SNAPSHOT.jar /opt/hadoop-2.2.0/share/hadoop/common/lib
    复制代码




    对于Hbase启用LZO

    1. cp $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64
    复制代码



    修改:
    hbase-env.sh
    1. export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
    复制代码


    同步hadoop 和hbase集群


    3.配置文件修改
    hadoop-env.sh中加入

    1. export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
    复制代码




    core-site.xml

    1. <!-- 配置 Hadoop压缩包 -->
    2. <property>
    3. <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</value>
    4. </property>
    5. <property>  
    6.        <name>io.compression.codec.lzo.class</name>  
    7.         <value>com.hadoop.compression.lzo.LzoCodec</value>  
    8. </property>
    复制代码





    mapred-site.xml

    1. <property>
    2.         <name>mapred.compress.map.output</name>
    3.         <value>true</value>
    4. </property>
    5. <property>      
    6.         <name>mapred.map.output.compression.codec</name>        
    7.         <value>com.hadoop.compression.lzo.LzoCodec</value>      
    8. </property>  
    9. <property>
    10.          <name>mapred.child.env</name>  
    11.          <value>LD_LIBRARY_PATH=/usr/local/lib</value>  
    12. </property>
    复制代码




    同步hadoop-env.sh,core-site.xml, mapred-site.xml到集群​
    4.  安装lzop

    下载地址:http://www.lzop.org/download/
    LZOP是使用lzo库写的一个程序,通过shell命令直接可以压缩、解压缩文件。

    1. tar zxvf lzop-1.03.tar.gz
    2. cd
    3. #  exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    4. # ./configure
    5. #  make
    6. #  makeinstall
    复制代码




    用一下lzop的压缩解压功能,成功安装后可直接使用lzop命令对文件进行解压缩操作了。
    # 压缩

    1. [hadoop@master1 ~]$ lzop -v test1.txt
    2. compressing test1.txt into test1.txt.lzo
    复制代码






    #上传到hdfs

    1. [hadoop@master1 ~]$ hadoop fs -put *.lzo /in
    复制代码




    #给Lzo文件建立Index

    1.    hadoop jar/opt/hadoop-2.2.0/share/hadoop/common/lib/hadoop-lzo-0.4.20-SNAPSHOT.jarcom.hadoop.compression.lzo.LzoIndexer   /in
    复制代码




    #运行一个wordcount程序

    1. hadoop jar /home/hadoop/wordcount.jar   org.apache.hadoop.examples.WordCount  /input1 /out1
    复制代码




    正常:
    14/02/23 18:53:14 INFOlzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries
    14/02/23 18:53:14 INFO lzo.LzoCodec:Successfully loaded & initialized native-lzo library [hadoop-lzo rev478aa845e11bbbeeb9b8326e733cd20a06d2cb3a]

  • 相关阅读:
    CSS3:三个矩形,一个宽200px,其余宽相等且自适应满铺
    pidera安装node.js(树莓派)
    深入JavaScript模块化编程
    c# 多显示器设置主屏幕(Set primary screen for multiple monitors)
    c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
    C# 弹出USB外接硬盘(U盘)
    log4net 自定义Appender
    Scrum 思考
    监控浏览器关闭事件
    判断地图的点是否在面内 腾讯地图
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/5007536.html
Copyright © 2011-2022 走看看