`
luweimstr
  • 浏览: 18554 次
  • 性别: 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

相关推荐

    Impala大数据分析引擎课程

    Impala由Cloudera公司主导开发的大数据实时查询分析工具,宣称比原来基于MapReduce的HiveSQL查询速度提升3~90倍,且更加灵活易用。提供类SQL的查询语句,能够查询存储在Hadoop的HDFS、Kudu、HBase(实际生产环境中...

    Hadoop实战(陆嘉恒)译

    编写MapReduce基础程序4.1 获得专利数据集4.1.1 专利引用数据4.1.2 专利描述数据4.2 构建MapReduce 程序的基础模板4.3 计数4.4 适应Hadoop API 的改变4.5 Hadoop 的Streaming4.5.1 通过Unix命令使用Streaming4.5.2 ...

    Hadoop实战中文版

    4.5 Hadoop 的Streaming 4.5.1 通过Unix命令使用Streaming 4.5.2 通过脚本使用Streaming 4.5.3 用Streaming处理键/值对 4.5.4 通过Aggregate包使用Streaming 4.6 使用combiner 提升性能 4.7 温故知新 4.8 小...

    Hadoop在人员定位软件系统中的应用研究

    针对现有人员定位系统难以满足大型煤矿大数据量访问需求的问题,提出将Hadoop应用于人员定位软件系统中,利用并行计算模型MapReduce和非关系型数据库HBase实现人员定位数据的并行化访问。Hadoop的应用显著提升了人员...

    基于大数据平台数据分析技术选型调研.pdf

    利⽤MapReduce计算引擎,提升了算法可处理的数据量和处理性能。 缺点: 1. 由于实现算法需要MR化,所以实现的算法相对较少 2. 学习资料较少,官⽹提供的相关⽂档并没有很详细的关于每个算法的使⽤教程。 3. 不⽀持...

    Hadoop大数据处理_刘军

    《Hadoop大数据处理》共10章涉及的主题包括大数据处理概论、基于Hadoop的大数据处理框架、MapReduce计算模式、使用HDFS存储大数据、HBase大数据库、大数据的分析处理、Hadoop环境下的数据整合、Hadoop集群的管理与...

    Nosql数据库原理与应用综合项目

    项目背景:针对城市化背景下房地产市场的复杂性,通过整合Redis、HBase、MongoDB和Neo4j数据库,构建一个二手房信息平台...个人体会强调了技术能力的提升和对数据管理理解的加深,以及解决数据清洗和处理中遇到的问题。

    Hadoop实战

    644.5 Hadoop的Streaming 674.5.1 通过Unix命令使用Streaming 684.5.2 通过脚本使用Streaming 694.5.3 用Streaming处理键/值对 724.5.4 通过Aggregate包使用Streaming 754.6 使用combiner提升性能 804.7 温故知新 ...

    交通管控大数据分析研判系统设计方案.docx

    平台通过Kafka消息总线汇聚各类道路交通信息、通过Spark进行实时流计算,通过HBASE/HDFS进行分布式存储,通过MapReduce进行分布式计算,通过应用服务器的数据接口,将结果分发给集成平台和各类基础应用系统,进行...

    impala的原理架构介绍及应用场景

    由cloudera公司主导开发的大数据实时查询分析工具,宣称比原来基于MapReduce的HiveSQL查询速度提升3~90倍,且更加灵活易用。提供类SQL的查询语句,能够查询存储在Hadoop的HDFS和Hbase中的PB级大数据。查询速度快是其...

    Hadoop实战中文版.PDF

    724.5.4 通过Aggregate包使用Streaming 754.6 使用combiner提升性能 804.7 温故知新 834.8 小结 844.9 更多资源 84第5章 高阶MapReduce 855.1 链接MapReduce作业 855.1.1 顺序链接MapReduce作业 855...

    云计算第二版

    6.2.4 提升性能的措施 194 6.2.5 访问接口 195 6.3 分布式数据处理MapReduce 196 6.3.1 逻辑模型 196 6.3.2 实现机制 196 6.4 分布式结构化数据表HBase 197 6.4.1 逻辑模型 198 6.4.2 物理模型 198 6.4.3 子表服务器...

    基于标签匹配的协同过滤推荐算法研究

    针对这一问题,基于微博大数据,以Hadoop 为平台,HBase为基础,MapReduce为编程框架,提出了基于Apriori算法与 Item-based协同过滤算法的组合算法,并构建了推荐好友系统。该系统通过Apriori算法对冗杂的微博内容 ...

    数据科学

    DCG,nDCG合奏方法引导,装袋和提升AdaBoost 随机森林大数据工程基础Hadoop和MapReduce编程NoSQL数据库和Apache HBase 蜂巢教程使用PySpark进行分析深度学习神经网络导论神经网络分配卷积神经网络-简介和行业应用...

    大数据与人工智能-fy.docx

    支持数据切块,目的是提升文件的读取效率 C.数据切块后默认大小为256M(正确答案) D.有副本机制 答案解析:为128M 12. Yarn是从Hadoop的哪个版本出现的 [单选题] A.1.0 B.2.0(正确答案) C.3.0 D.4.0 大数据与人工智能...

    大数据--第一章大数据概述笔记分享.pdf

    第三次信息化浪潮的⽀持 技术⽀撑 § 存储:存储设备容量不断增加 § 计算:CPU处理能⼒⼤幅度提升 § ⽹络:⽹络带宽不断增加 数据产⽣⽅式发⽣变化 3.数据产⽣⽅式的变⾰促成⼤数据时代的来临 运营式系统阶段——...

    个性化智能推荐系统分析与调研.pdf

    在系统实现技术架构上,为⽀撑个性化 推荐系统平均⾄少每周进⾏算法迭代,采⽤HBase、Spark及MapReduce等系统架构,在个性化推荐系统优化升级中, 与DNN融合的速度越来越快。 3. ⽤户⾏为数据采集 平台的前端⽤户千...

Global site tag (gtag.js) - Google Analytics