`
luweimstr
  • 浏览: 19097 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HBase 之mapreduce 提升

阅读更多
    最近在研究如何利用Mapreduce架构处理HBase中的数据。总体来看有以下两种方法:
1)借助HBase提供的package:org.apache.hadoop.hbase.mapreduce。目前package的性能不是很优,下文将详述;
2)借助Hive提供的hbase-handler,利用hive来处理后base的数据,但是hbase-handler依然依赖1)中的package,自然存在同样的问题。
    本文旨在对方法1)进行提升,提出一个思路,希望大家多多讨论,给出意见建议。

    第1)种方法,HBase的提供的Mapreduce将待处理的HTable按照region的start/end key进行split。每个Mapper处理一个region的数据。
    这种split任务的想法比较直接,因为每个Region的start/end key都比较容易得到,package中提供的代码是通过读取.META.表获取的。实际上还可以通过htable的regioninfo获取,或者直接从HFile中获取(这种方法下面将会具体详述)。然而,我觉得这种split的方式不是很合理,设想:
    HTable的region的个数不多,远少于集群中node的个数,但是每个region都很庞大,远大于默认的256M。
    那么每个处理Mapper的node将要处理过多的任务,同时又会有很多node的资源得不到Mapper任务——总之,无法根据集群处理的能力合理地分配任务。
    实际上我们需要对每个region中的数据进一步划分,从而产生更多的mapper任务,以供较多的node处理。这需要我们对每个region都获取更多的key作为split的边界,我们称之为采样key。问题在于,我们可以容易地获得每个region的start/end key,但却无法容易地、直接地获得更多的采样key :(
    事实上,我们可以从HFile中比较直接地获取一些key。通过对HFile格式的了解,可以发现HFile中有一个segment叫做block index segment。这个segment包含了HFile中所有block中第一行的key(不过这里的key包含了更多的信息:row/fam:qualifier。。。)。默认的block大小是64K,默认的region大小是256M,所以通读取block index segment我们可以比较容易地、直接地获取大概256M/64K=4096个key。当然,这些key是排好序的,所以我们可以进一步对这4千个key进行等间隔采样,从而获得采样key。


第2)种方法,hive是一个非常强大的数据分析工具,它提供了Hql,可以用类似于sql的语句对数据进行分析。hbase-handle则是hive和hbase的桥梁,使得hive可以读取/写入HBase,并在Mapreduce框架下处理HBase的数据。
分享到:
评论
1 楼 lc_koven 2011-12-14  
很有道理,直接读取blockindex

相关推荐

    HBase MapReduce完整实例

    《HBase MapReduce实战详解》 在大数据处理领域,HBase和MapReduce是两个不可或缺的重要组件。HBase作为分布式列式存储系统,适用于大规模数据的实时读写操作;而MapReduce则是Apache Hadoop的核心组件之一,用于...

    HDFS 通过mapreduce 进行 HBase 导入导出

    标题 "HDFS 通过 mapreduce 进行 HBase 导入导出" 涉及的是大数据处理领域中的两个重要组件——Hadoop Distributed File System (HDFS) 和 HBase,以及它们之间的数据交互。HDFS 是 Hadoop 的分布式文件系统,而 ...

    Hbase:HBase MapReduce投影

    标题中的“Hbase:HBase MapReduce投影”是指在HBase数据存储系统中,利用MapReduce框架进行数据处理的一种技术。MapReduce是Google提出的一种分布式计算模型,常用于大数据处理,而HBase则是一个基于列族的分布式...

    hbase jar包.zip

    guava-30.1.1-jre.jar是Google的Guava库,提供了许多Java集合框架的增强,以及并发、I/O、字符串处理等方面的实用工具,对于提升代码效率和可维护性有着积极的影响。 commons-configuration2-2.3.jar是Apache ...

    HDFS+MapReduce+Hive+HBase十分钟快速入门.zip_hbase_hdfs_hive_mapReduce

    HBase是一个分布式的、面向列的NoSQL数据库,它建立在HDFS之上,提供实时读写操作。HBase按照列族组织数据,每个表被划分为多个行,行由行键(Row Key)唯一标识。列族内的列可以根据需求动态添加,数据按时间戳排序...

    WordCount,HBase MR样例代码

    “HBase MR样例代码”则指的是使用Hadoop的MapReduce框架来操作HBase,HBase是一个基于Google的Bigtable论文设计的开源NoSQL数据库,运行在Hadoop之上。HBase提供高吞吐量的数据读写能力,适合存储非结构化和半结构...

    apache hbase reference guide pdf

    Apache HBase是Apache Software Foundation旗下一个开源的非关系型分布式数据库(NoSQL),它是Apache...通过阅读和实践参考指南中的内容,用户可以深入理解和掌握HBase的使用和管理,提升自身在大数据领域的技术能力。

    MapReduce输出至hbase共16页.pdf.zip

    2. 配置优化:调整MapReduce和HBase的相关配置参数,如map任务和reduce任务的数量、内存大小等,以提升整体性能。 3. 数据压缩:在写入HBase前,可以对数据进行压缩,减少网络传输和存储空间。 4. 并行写入:如果...

    hbase1.0.3_part2

    《HBase 1.0.3 进阶学习——Part2》 ...在实际项目中,理解并掌握这些高级特性和最佳实践,能够显著提升HBase的使用效果。在使用HBase时,记得结合实际场景选择合适的配置和策略,以达到最佳的性能和稳定性。

    HBASE编程指南word版

    - MapReduce框架可以直接读取HBase中的数据进行处理,提高大数据分析的效率。 - **具体实现**: - **HDFS**: 作为底层存储层,提供数据的分布式存储能力。 - **MapReduce**: 可以直接处理HBase中的数据,支持复杂...

    HBase:权威指南

    《HBase:权威指南》是一本深度探讨分布式大数据存储系统的专著,主要聚焦于Apache HBase,这是一个构建在Hadoop之上、高度可扩展的非关系型数据库。这本书旨在帮助读者理解HBase的核心概念、设计原理以及实际应用,...

    超全的HBase知识体系总结.pdf

    通过适当调优,可以显著提升HBase集群的性能。 13. HBase大厂面试题解析部分未在提供的内容中显示,但通常会涉及到HBase架构、性能调优、数据模型等重要知识点。面试题的解析可以帮助应聘者更深入地理解HBase,为...

    大数据【经典书籍】:HBase不睡觉书 带目录(高清)【608页】.zip

    HBase的监控和运维也是重点内容之一,包括使用ZooKeeper进行协调、通过HBase Metrics进行性能监控、以及如何通过Ambari等工具进行集群管理。这部分内容对于大型HBase集群的运维人员来说尤为实用。 最后,书中可能还...

    hbase-1.0.3-bin.tar

    HBase,全称为Hadoop Distributed File System Base,是构建在Apache Hadoop文件系统(HDFS)之上的分布式、列式存储的NoSQL数据库,专为处理大规模数据而设计。它在大数据领域扮演着至关重要的角色,尤其在实时查询...

    HBase官方文档中文版

    - **ZooKeeper与Schema设计**:强调了ZooKeeper的配置对HBase稳定性的重要性,以及合理设计Schema对性能提升的作用。 - **HBase General Patterns**:总结了一系列常见的HBase性能调优策略。 - **读写操作与HDFS**...

    How-to: Use HBase Bulk Loading, and Why

    在大数据处理领域,HBase(Hadoop Database)是一款基于Google Bigtable设计的高可靠性、高...通过合理的预处理和工具利用,可以显著提升数据处理效率,降低系统负载,从而更好地发挥HBase在大数据存储和分析中的优势。

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    HBase构建于Hadoop的HDFS之上,依赖于HDFS提供分布式存储。HBase的数据是以文件形式存储在HDFS上的,而Hadoop的MapReduce则用于执行HBase的批处理任务。HBase使用Hadoop的YARN进行资源调度和任务管理。 ### HBase的...

    hbase2.2安装文件

    在大数据应用中,HBase常常与其他技术结合使用,如Hadoop MapReduce进行批处理分析,Spark用于实时计算,或者与Hue、Ambari等工具集成以提供友好的数据操作界面。了解和掌握HBase的安装和配置是大数据工程师的基本...

    hbase-2.0.5-bin.tar.gz

    7. **MapReduce集成**:HBase可以与Hadoop的MapReduce框架无缝配合,用于执行批量处理和分析任务。 8. **ZooKeeper依赖**:HBase依赖ZooKeeper进行集群协调和元数据管理,确保服务的高可用性。 9. **API和Shell**...

Global site tag (gtag.js) - Google Analytics