原文链接:开启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]

开启hadoop和Hbase集群的lzo压缩功能(转)的更多相关文章

  1. hadoop(八) - hbase集群环境搭建

    1. 上传hbase安装包hbase-0.96.2-hadoop2-bin.tar.gz 2. 解压 tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /clo ...

  2. 配置hadoop集群的lzo压缩

    MR-Job中使用lzop详见MR案例:Job中使用Lzo压缩 1). 配置前的环境准备 # yum -y install lzo-devel zlib-devel gcc autoconf auto ...

  3. 使用ganglia监控hadoop及hbase集群

    一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...

  4. docker应用-3(搭建hadoop以及hbase集群)

    要用docker搭建集群,首先需要构造集群所需的docker镜像.构建镜像的一种方式是,利用一个已有的镜像比如简单的linux系统,运行一个容器,在容器中手动的安装集群所需要的软件并进行配置,然后co ...

  5. 第十二章 Ganglia监控Hadoop及Hbase集群性能(安装配置)

    1 Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...

  6. 使用ganglia监控hadoop及hbase集群 分类: B3_LINUX 2015-03-06 20:53 646人阅读 评论(0) 收藏

    介绍性内容来自:http://www.uml.org.cn/sjjm/201305171.asp 一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测 ...

  7. 设置Hadoop+Hbase集群pid文件存储位置

    有时候,我们对运行几天或者几个月的hadoop或者hbase集群做停止操作,会发现,停止命令不管用了,为什么呢? 因为基于java开发的程序,想要停止程序,必须通过进程pid来确定,而hadoop和h ...

  8. Phoenix连接安全模式下的HBase集群

    Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...

  9. HBase 集群监控系统构建

    HBase 集群监控系统构建 标签(空格分隔): Hbase 一, 集群为什么需要监控系统 总的来说是为了保证系统的稳定性,可靠性,可运维性.具体来说我认为有以下几点: 掌控集群的核心性能指标,了解集 ...

随机推荐

  1. Django实战(15):Django实现RESTful web service

    曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style).所以我们的选择变得很简单:前端ajax访问后端的RESTful w ...

  2. iconfont 在项目中的简单使用

    font-class引用 font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题. 与unicode使用方式相比,具有如下特点: 兼容性良好,支持 ...

  3. PHP学习日记 函数

    可变函数 PHP支持可变函数的概念.所以如果一个变量后面有圆括号“()”,PHP将寻找与变量值同名的函数,并尝试执行此函数,可变函数可以用来实现回调函数.函数列表等.可变函数不能用于echo.prin ...

  4. MySQL 大数据量使用limit分页,随着页码的增大,查询效率越低下。

    数据表结构 CREATE TABLE `ad_keyword` ( `id` int(11) NOT NULL AUTO_INCREMENT, `plan_goods_id` int(11) DEFA ...

  5. Dijkstra算法---HDU 2544 水题(模板)

    /* 对于只会弗洛伊德的我,迪杰斯特拉有点不是很理解,后来发现这主要用于单源最短路,稍稍明白了点,不过还是很菜,这里只是用了邻接矩阵 套模板,对于邻接表暂时还,,,没做题,后续再更新.现将这题贴上,应 ...

  6. 20169211 《Linux内核原理与分析》第十一周作业

    SET-UID程序漏洞实验 一.实验简介 Set-UID 是Unix系统中的一个重要的安全机制.当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限.例如,如果程序的拥有者是root,那么任 ...

  7. 请爱护你的JTAG烧录口---记录

        排除了下载线的问题后,还是不能访问FPGA的JTAG口,那么很有可能你的FPGA芯片的JTAG口已经损坏.此时请用万用表检查TCK,TMS,TDO和Tdi是否和GND短路,如果任何一个信号对地 ...

  8. iOS Sprite Kit教程之滚动场景

    iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示. 图2.26  植物大战僵尸 在图2.26中,用 ...

  9. [ 原创 ] Java基础5--abstract class和interface的区别

    1.含有abstract抽象修饰符的类就是抽象类.abstract 类不能创建实例对象 2.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不 ...

  10. 为了增强团队的协作和高效开发,提升代码质量,TGideas团队一起制订的代码规范。主要包括五部分内容:PC规范、移动端规范、性能优化、CP规范、其他项目规范

    http://tguide.qq.com/main/index.htm