关键类:

HBaseAdmin 管理Hbase的,主要负责DDL操作

HTable 管理表中数据,主要负责DML操作

1、为了避免热点,更多的建表方法

在Shell中:

 create 'tb_splits',{NAME=>'cf',VERSION=>3},{SPLITS=>['a','b','c']}
--直接创建多个region的table,每个region的startkey和endkey由参数依次指定,第一个region没有开始startkey,最后一个没有endkey
--rowkey参数的选择必须有意义,才能实现均匀分布,否则分多个region无意义
--多个region可以分布在多个regionserver上,添加数据的时候数据可以均匀分布在region中,实现负载均衡

在Java中

hBaseAdmin.createTable(tableDescriptor,Bytes.toBytes(0L),Bytes.toBytes(100L),10);
hBaseAdmin.createTableAsync(tableDescriptor,keyValueArray);

2、原子操作

原子插入(compare-and-set)

hTable.checkAndPut(row,family,qualifier,value,put)

原子删除(compare-and-delete)

hTable.checkAndDelete(row,family,qualifier,value,delete)

3、计数器:

用于实时收集信息,原子操作

在Shell下操作

incr 't1','','daily:hits',1
-- t1 表名
--20150226 行健
-- daily是列族
--hits 是列,最后是值
get_counter 't1','row_key','daily:hits'

在java中操作

hTable.incrementColumnValue(...)
hTable.increment(increment)

  

HBase的数据格式:

1、Region 存储数据有三部分组成,包括HLog、MemStore、HStore

2、WAL(write-ahead-log),RegionServer共享一个HLog实例。

往region写数据之前,先往HLog里面写数据,同时往MemStore里面写

HLog是为了保证事务,MemStore保证客户端访问速度

*当MemStore文件快满的时候,会合并并写StoreFile写入HDFS;当StoreFile很多的时候,会合并合并为一个大文件

*HBase还有个存储结构,LMS树的文件会不断合并;和一般的索引文件不同,索引一般用B+树结构:宽度非常宽,深度很浅

HFile 是存储数据最根本的,storefile是对hfile的简单封装

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. JNI-入门之二

    Android中JNI编程的那些事儿 首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Na ...

  2. php正则表达式判断是否为ip格式

    <?php $a = '127.0.0.111'; $b = preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$a); ...

  3. c++类中的静态成员

    静态成员和非静态成员的区别: 类静态成员用static修饰,类的静态成员属于类本身,而不属于类的某个具体对象,静态成员被类的所有对象共享,因此某个对象对静态成员(数据成员)的修改对其对象是可见的.而类 ...

  4. 对于Oracle中分页排序查询语句执行效率的比较分析

    转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

  5. c++ 获取本地ip地址

    最终版本:采用指针传参数,不使用别名形式. #include <unistd.h> #include <netdb.h> //gethostbyname #include &l ...

  6. c++ 从标注输入流读取行

    #include <string.h> #include <iostream> #include <vector> #include <stdio.h> ...

  7. Log4j XML配置

    问题描述:     Log4j  XML配置 问题解决:     (1)编写log4j.xml配置文件 注:     如上的XML文件必须以log4j.xml文件命名,否则无法读取配置文件,同样的如果 ...

  8. 腾讯QQ企业邮箱在ruby on rails 框架中的mailer配置

    在编写ruby on rails程序时,我们可能会需要用到发送邮件的程序,如果使用gmail进行smtp发送一般问题不大,但很多企业使用的是腾讯QQ企业邮箱.使用该邮箱进行链接时出现各种错误,goog ...

  9. Filter及FilterChain的使用详解(转)

    一.Filter的介绍及使用 什么是过滤器? 与Servlet相似,过滤器是一些web应用程序组件,可以绑定到一个web应用程序中.但是与其他web应用程序组件不同的是,过滤器是"链&quo ...

  10. ReplicaManager之DelayedOperation

    DelayedOperation包括两种:DelayedFetch和DelayedProduce,它们的存在是由Kafka Protocol决定的,而Kafka Protocol是由实际需求决定的…… ...