HBase 学习笔记
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 学习笔记的更多相关文章
- HBase学习笔记之HBase的安装和配置
HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...
- HBASE学习笔记(四)
这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...
- HBase学习笔记之BulkLoad
HBase学习之BulkLoad bulkload的学习以后再写文章. 参考资料: 1.https://blog.csdn.net/shixiaoguo90/article/details/78038 ...
- HBase学习笔记之HBase原理和Shell使用
HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell
- HBase学习笔记(四)—— 架构模型
在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...
- Hbase学习笔记01
最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hb ...
- HBase学习笔记-高级(一)
HBase1. hbase.id记录了集群的唯一标识:hbase.version记录了文件格式的版本号2. split和.corrupt目录在日志分裂过程中使用,以便保存一些中间结果和损坏的日志在表目 ...
- HBASE学习笔记--API
HBaseConfiguration HBaseConfiguration是每一个hbase client都会使用到的对象,它代表的是HBase配置信息.它有两种构造方式: public HBaseC ...
- Hbase—学习笔记(一)
此文的目的: 1.重点理解Hbase的整体工作机制 2.熟悉编程api,能够用来写程序 1. 什么是HBASE 1.1. 概念特性 HBASE是一个数据库----可以提供数据的实时随机读写 HB ...
- HBase学习笔记一
HBase简介 HBase概念 HBase的原型是谷歌的Bigtable论文 HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC上搭建起大规模结构化存储集 ...
随机推荐
- 如何将.il、.res文件封装成dll文件
将你的.il..res文件保存在你的硬盘上,如下图: 我存放的路径在E盘的test文件夹中,我们开始封装了咯.进入DOS命令,如下图: 我们通过DOS命令先进入.il..res文件目录,如下图: 然后 ...
- Spring控制反转与依赖注入(IOC、DI)
IOC: 反转控制 Inverse Of Control DI:依赖注入 Dependency Injection 目的:完成程序的解耦合 解释:在应用系统的开发过程中,有spring负责对象的创 ...
- ASP.net绑定文本框Enter事件到按钮 ASP.NET执行后台执行JS方法
txtAccountBarcode.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if (( ...
- Ubuntu自定义服务
1.准备脚本 准备好一个bash服务脚本,包括start|stop|restart等参数,将脚本文件命名为“服务名”,拷贝到/etc/init.d/目录下. 2.添加服务sudo update-rc. ...
- 【JAVA 其它流对象】
一.PrintStream类. 该流是字节流. public class PrintStream extends FilterOutputStream implements Appendable, C ...
- SQL分组和聚合(Grouping and Aggregates)
这章应该是难点,也是成为SQL高手的必经之路. 注意有GROUP 语句时,WHERE和HAVING的场合. 前者用于检索前的条件过滤 . 后者用于检索出来结果之后的条件过滤. ========== ; ...
- Atlas 安装和配置
前提得配置好主从:http://www.cnblogs.com/super-d2/p/4802990.html 首先,先去下载Altas的rpm包,下载地址:https://github.com/Qi ...
- 5-04用Sql语句创建表
用Sql语句创建表的基本语法: USE E_Market--指向当前所操作的数据库 GO CREATE TABLE CommoditySort--创建表的名字 { sortID int IDENTIT ...
- poj 3468【线段树】
题意:给定Q(1<=Q<=100000)个数A1,A2…AQ,以及可能多次进行的两个操作 1)对某个区间Ai……Aj的每个数都加n(n可变) 2)对某个区间Ai……Aj的数求和 分析: 树 ...
- Activity生命周期 onCreate onResume onStop onPause (转)
Android应用开发提高系列(6)——Activity生命周期 onCreate 和 onResume 在程序启动时候都会启动, 所有有些需要在onCreate onResume中都要实现的功能,之 ...