1. HBase 的特点

1.线性扩展,自动分表

  • region的自动分裂以及master的balance
  • 增加datanode机器即可增加容量
  • 增加regionserver机器即可增加读写吞吐量

2.海量数据存储

一个表可以有上亿行,上百万列

3.强一致性

同一行数据的读写只在一台regionserver上进行,同一行的列写入是原子的

4.高性能随机写WAL (Write Ahead Log)

5.无缝集成Hadoop,支持MapReduce

2. HBase 各个角色的任务及特点

1)Master

- 为Region server分配region

- 负责region server的负载均衡

- 发现失效的region server并重新分配其上的region

- 监听zk,基于zookeeper感应rs的上下线

- 监听zk,基于zookeeper来保证HA

- 处理schema更新请求

特点:

- 不参与对表的读写访问

- 负载很低

- 无SPOF(单点故障)

2)RegionServer

- Region server维护Master分配给它的region

- 处理对其上region的IO请求,写入/读取数据

- 维护region的cache

- 处理region的flush、compact、split

3)Region和Table

- 以Region为单位管理, region(startKey,endKey);

- 每个Column Family单独存储:storeFile;

- 当某个Column Family累积的大小 > 某阈值时,自动分裂成两个Region;

- 如何找到某行属于哪个region呢?两张特殊的表:-ROOT- 和.META.

4)Zookeeper

- 保证任何时候,集群中只有一个master

- 保存root region的位置 即存贮所有Region  的寻址入口

- 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master

- 存储Hbase的schema,包括有哪些table,每个table有哪些column family

5)HStore

- 存储的核心,由两部分组成:MemStore 和 StoreFiles

- 数据先写入MemStore,满了以后flush成一个StoreFile

- StoreFile数据量超过阀值,触发Compact合并操作

- Rgeion 大小超过阀值,出发Split

- 写操作只进入内存即返回,更新和删除操作都在compact过程中进行,Hbase只有增加,因此保证了I/O的高性能

HBase 加载数据有两种方式

1.  Java 代码 MapReduce 开发工期比较长

2.  hive-hbase-handler hive创建一个表和Hbase共享,通过hive-hbase-handler 往hive中插入数据,从而达到

HBase 学习笔记的更多相关文章

  1. HBase学习笔记之HBase的安装和配置

    HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...

  2. HBASE学习笔记(四)

    这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...

  3. HBase学习笔记之BulkLoad

    HBase学习之BulkLoad bulkload的学习以后再写文章. 参考资料: 1.https://blog.csdn.net/shixiaoguo90/article/details/78038 ...

  4. HBase学习笔记之HBase原理和Shell使用

    HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell

  5. HBase学习笔记(四)—— 架构模型

    在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...

  6. Hbase学习笔记01

    最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hb ...

  7. HBase学习笔记-高级(一)

    HBase1. hbase.id记录了集群的唯一标识:hbase.version记录了文件格式的版本号2. split和.corrupt目录在日志分裂过程中使用,以便保存一些中间结果和损坏的日志在表目 ...

  8. HBASE学习笔记--API

    HBaseConfiguration HBaseConfiguration是每一个hbase client都会使用到的对象,它代表的是HBase配置信息.它有两种构造方式: public HBaseC ...

  9. Hbase—学习笔记(一)

    此文的目的: 1.重点理解Hbase的整体工作机制 2.熟悉编程api,能够用来写程序 1.  什么是HBASE 1.1.   概念特性 HBASE是一个数据库----可以提供数据的实时随机读写 HB ...

  10. HBase学习笔记一

    HBase简介 HBase概念 HBase的原型是谷歌的Bigtable论文 HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC上搭建起大规模结构化存储集 ...

随机推荐

  1. struts.xml配置详解

    struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件. 一下分别介绍一下几个struts.xml中常用到的标签 1.<include> 利用includ ...

  2. sqlplus 设置

    set heading offset line 40001.设置页面显示总行数show pagesize; //首先查看目前的pagesize,默认是14set pagesize 100; //将pa ...

  3. springmvc上传List,

    @RequestMapping("pay") public ModelAndView pay(String orderNo, TransactionDTO transaction, ...

  4. ShareSdk使用心得

    1. 微信和朋友圈:分享的时候设置了链接和图片,但就是不显示: 需要指明ShareType为WEB_PAGE 2. 需要完整添加 ShareSdk 的所需要的权限,不然分享闪退,并且不报异常:网络请求 ...

  5. cf378D(stl模拟)

    题目链接:http://codeforces.com/contest/733/problem/D 用map<pair<int, int>int>标记(第一次用~)... 代码: ...

  6. NYOJ题目114某种序列

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAscAAAHuCAIAAAD83zYaAAAgAElEQVR4nO3dP1LjygIv4LcJ5yyE2A

  7. Loadrunner11.0 录制手机App脚本的方法

    使用Loadrunner录制手机终端App脚本 1. 说明 目前手机APP上的功能日益丰富,对手机应用功能的性能测试需求也越来越多.公司比较抠门没有花钱买Loadrunner,可怜我们工作中一直用的破 ...

  8. (编辑器)Jquery-EasyUI集合Kindeditor编辑器

    1.在html里面添加 list.html list.html (function ($, K) { if (!K) throw "KindEditor未定义!"; functio ...

  9. [LeetCode] Gas Station

    Recording my thought on the go might be fun when I check back later, so this kinda blog has no inten ...

  10. phpcms_v9 多图字段 内容页,首页,分页自定义字段调用

    phpcms_v9 多图字段 内容页,首页,分页自定义字段调用 说明:自定义多图字段名 shigongtu 1 内容页调用 {loop $shigongtu $r}      <img src= ...