`
qindongliang1922
  • 浏览: 2182468 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117477
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125867
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59865
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71256
社区版块
存档分类
最新评论

Hadoop2.7.1和Hbase0.98添加LZO压缩

阅读更多

1,执行命令安装一些依赖组件
yum install -y hadoop-lzo lzo lzo-devel hadoop-lzo-native  lzop
2, 下载lzo的源码包并解压

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz
tar -zxvf lzo-2.09.tar.gz

3,在当前目录新建一个lzo目录,存储编译后的lzo文件
进入lzo-2.09目录
依次执行命令:
export CFLAGS=-64m
./configure --enable-shared --prefix=/home/search/lzo
make && make install

4,下载twitter的hadoop-lzo源码进行编译:

git clone https://github.com/twitter/hadoop-lzo.git

进入hadoop-lzo目录,修改pom中hadoop的版本为2.7.1
然后依次执行如下命令,配置环境变量:
export CFLAGS=-64m
export CXXFLAGS=-64m
export C_INCLUDE_PATH=/home/search/lzo/include
export LIBRARY_PATH=/home/search/lzo/lib
然后执行mvn clean test构建
mvn clean test
确认success后,即可执行:
mvn clean package -Dmaven.test.skip=true
进行打包构建,构建成功后,

拷贝编译文件 cp -a hadoop-lzo/target/native/Linux-amd64-64/lib/* 到hadoop/lib/native/ 和 hbase/lib/ 下面

拷贝lzo的jar包cp -a hadoop-lzo/target/hadoop-lzo-0.4.20-SNAPSHOT.jar   到hadoop/share/hadoop/common/lib下面和hbase/lib下面

//测试hbase是否支持snappy
hbase org.apache.hadoop.hbase.util.CompressionTest /user/webmaster/word/in/tt2  snappy    
//测试hbase是否支持lzo
hbase org.apache.hadoop.hbase.util.CompressionTest /user/webmaster/word/in/tt2   lzo

//压缩lzop,解压缩lzop -d
//执行一个MR任务,给lzo相关数据,建索引,
bin/hadoop jar share/hadoop/common/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/webmaster/rand

//执行一个单机任务,给lzo相关数据,建索引
bin/hadoop jar share/hadoop/common/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar
com.hadoop.compression.lzo.LzoIndexer  /user/webmaster/rand

经过测试同样的数据:

不设置任何压缩的hbase表,所占存储空间最大
经过snappy压缩的表,存储空间明显变小
经过lzo压缩的表,存储空间最小

遇到的问题:

一个hbase中,如果同时有两种压缩表,一个是lzo压缩的表,一个是snappy压缩的表,那么在使用java client去scan数据时,可能会有regionserver会挂掉,经过查看log,发现hbase中并无明显异常,但是同节点的hadoop的datanode的log中会抛出了如下异常:



java.io.IOException: Premature EOF from inputStream
        at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:201)
        at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
        at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
        at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
        at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:472)
        at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:849)
        at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:804)
        at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137)
        at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74)
        at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:251)
        at java.lang.Thread.run(Thread.java:745)


经过查资料,发现说的都是hbase的客户端租约超时,或者是linux的句柄数太少,等等,经过验证,发现跟这些处理方法没关系,删除了一个snappy压缩的表,继续测试,这下能正常运行了, 至于具体的原理,还没搞清楚,可能与hbase的hfile的底层存储有关系,一个region下面不能同时存储在两种压缩数据结构,这个坑得记住。


最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!


0
0
分享到:
评论

相关推荐

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    在IT行业中,大数据处理是不可或缺的一部分,而Hadoop和HBase作为开源的分布式存储和处理框架,被广泛应用于海量数据的管理和分析。本篇将详细阐述如何在Hadoop 2.7.1环境下搭建HBase 1.2.1集群,并进行性能优化,以...

    hadoop2.7.1+hbase2.1.4+zookeeper3.6.2.rar

    标题 "hadoop2.7.1+hbase2.1.4+zookeeper3.6.2.rar" 提供的信息表明这是一个包含Hadoop 2.7.1、HBase 2.1.4和ZooKeeper 3.6.2的软件集合。这个压缩包可能包含了这些分布式系统的安装文件、配置文件、文档以及其他...

    Hadoop2.4、Hbase0.98、Hive集群安装配置手册

    Hadoop2.4、Hbase0.98、Hive集群安装配置手册

    虚拟机环境下Hadoop2.7.1+HBase1.3.5安装配置手册 .docx

    本文详细介绍了如何在 CentOS 6.5 虚拟机环境下安装配置 Hadoop 2.7.1 和 HBase 1.3.5。通过对整个安装过程的梳理,不仅有助于读者理解 Hadoop 和 HBase 的基本配置流程,也能帮助解决安装过程中可能出现的各种问题...

    hadoop-2.7.1.zip

    Hadoop 2.7.1是Hadoop发展过程中的一个重要版本,它提供了许多增强特性和稳定性改进,使得大规模数据处理更加高效和可靠。在这个版本中,Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,...

    Hadoop2.7.1中文文档

    Hadoop生态还包括其他相关项目,如HBase(分布式数据库)、Hive(数据仓库工具)、Pig(数据分析平台)和Spark(快速大数据处理框架)。这些项目与Hadoop结合使用,可以构建出更强大的大数据解决方案。 总的来说,...

    hadoop-2.7.1

    9. **生态系统**:Hadoop 2.7.1还伴随着许多其他项目,如Hive(数据仓库工具)、Pig(数据分析平台)、HBase(NoSQL数据库)、Spark(快速大数据处理引擎)等,它们共同构成了Hadoop生态系统。 10. **安装与部署**...

    hadoop2.7.1 eclipse插件

    hadoop2.7.1的eclipse插件,编译环境,eclipse 4.4(luna) ,jdk1.7,ant1.9.6,maven3.3,hadoop2.7.1,centos6.7,jdk1.7 要注意的是开发黄金下jdk版本必须是jdk1.7及以上,否则无法使用

    hadoop2.7.1+zk3.5+hbase2.1+phoenix 安装部署环境打包

    本压缩包提供了这些组件的安装部署资源,便于快速搭建一个完整的Hadoop2.7.1、ZK3.5、HBase2.1和Phoenix5.1.0的基础环境。 首先,Hadoop是Apache开源项目,它提供了分布式文件系统(HDFS)和MapReduce计算框架,...

    hadoop2.7.1.rar

    标题中的"hadoop2.7.1.rar"表明这是一个关于Apache Hadoop的压缩文件,具体版本为2.7.1。Hadoop是一个开源框架,主要用于分布式存储和计算,它由Apache软件基金会开发,广泛应用于大数据处理领域。这个压缩包可能是...

    hadoop.zip hadoop2.7.1安装包

    这个tarball文件通常在Linux环境下使用,通过解压缩可以得到Hadoop的源代码和二进制文件。用户需要配置环境变量、核心配置文件(如`core-site.xml`,`hdfs-site.xml`)以及集群设置,然后启动Hadoop服务,包括...

    hadoop2.7.1-win32.zip

    标题 "hadoop2.7.1-win32.zip" 指示了这是一个适用于Windows 32位操作系统的Hadoop版本,具体为2.7.1。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大量计算机节点上处理和存储海量数据。这个...

    hadoop2.7.1的Windows版本

    Hadoop 2.7.1是其一个重要的版本,提供了许多性能优化和功能增强。然而,Hadoop最初设计的目标是在Linux环境下运行,因此,直接在Windows系统上运行可能会遇到兼容性问题。为了在Windows上成功部署并运行Hadoop ...

    hadoop 2.7.1

    对于开发者来说,了解Hadoop 2.7.1的API和配置参数是非常重要的。例如,可以通过HDFS API来读写文件,使用MapReduce API编写分布式应用。在实际操作中,还需要掌握如何配置Hadoop集群,包括设置HDFS的副本数、优化...

    Spark所需的hadoop2.7.1相关资源

    4. 兼容性:Hadoop的API和库支持Spark与各种Hadoop生态系统的其他组件(如HBase、Hive等)进行交互,增强了Spark的灵活性和应用场景。 在Windows环境下安装和配置Hadoop2.7.1和Spark2.0.0+时,确保正确放置hadoop....

    hadoop2.7.1版本的hadoop.dll,winutils.exe

    在实际操作中,用户可能需要将hadoop.dll和winutils.exe添加到系统路径,以便Hadoop可以找到并使用这些文件。同时,确保配置文件(如hadoop-env.cmd和core-site.xml)正确无误,设置好Hadoop的主节点、数据节点等...

    eclipse hadoop2.7.1 plugin 配置

    - **YARN(Yet Another Resource Negotiator)**:Hadoop 2.7.1引入的资源管理系统,负责调度任务和管理集群资源。 - **Hadoop生态**:除了核心的MapReduce和HDFS,Hadoop生态系统还包括Pig、Hive、Spark等工具,...

    hadoop2.7.1平台搭建

    hadoop2.7.1平台搭建

    HBase源代码 hbase-0.98.23

    通过分析`org.apache.hadoop.hbase.masterAssignment.RegionStates`和`org.apache.hadoop.hbase.master.LoadBalancer`等类,我们可以了解HBase如何实现集群的负载均衡和容错能力。 在大数据处理中,HBase的性能优化...

    hadoop-2.7.1 64位编译包 part1

    本人用7个多小时成功编译 hadoop 2.7.1 64位编译包(JDK1.8 64),由于文件太大,分3卷压缩。 hadoop 2.7.1 相对于2.7.0修复了上百个Bug,是可用于生产环境的版本了。

Global site tag (gtag.js) - Google Analytics