这一次开始学习HBase数据库。

我用的是VMWare + ubuntu16.04 +Hbase1.1.5 +hadoop2.6.0的组合。

经过亲自安装验证,版本间没有发生冲突,可以进行学习和开发。

具体的安装过程参照了厦门大学数据实验室的安装教程,个人感觉这里面的安装步骤非常详细,非常少适合新人上手,只要懂得基本的java和linux基础即可。

下面是厦大数据实验室的链接:http://dblab.xmu.edu.cn/blog/588-2/#more-588

Hbase即hadoop database,这是一个在HFDS上的分布式数据库。与传统关系型数据库的行数据存储不同,Hbase则是以列的形式存储数据。

Hbase中RowKey是类似于传统关系型数据库中的主键,然后字段都会被存在colFamily(列族)中,然后列族中可以有不同的col(列名),colFamily:col唯一确定了一个值,插入数据的时候要定位到表明=>行键=>列族:列名,且一次只能插入一个数据。

例如现在有一个学生表,学生表里有姓名,性别,学号,成绩字段,那么HBase的表结构将会是下面这样:

RowKey行键 info:name info:sex info:number grade:math grade:english
student1 kinsomy        
student1   male      
student1     123456    
student1       100  
student1         100

每次插入一条数据,表中就形成了一个完整的记录,这就是列式数据库的基本结构。

同时每次插入一行的时候,HBase会自动附带一个时间戳timestamp来表示版本。

在定义表的时候,一个表的列族必须作为表模式定义的一部分预先给出。新的列族成员可以随后按需要加入。

例如在定义表的时候,info和grade要先随表定义好,然后可以在需要的时候加入name,math等列族中的成员。

Hbase数据库适合用在数据需要多次写入并且多次查询的场景中,并且查询条件不是很复杂的情况。

由于我才用的是伪分布式的配置,目前只采用了单个节点,因此没有master和salve之说。

HBase内部保留了名为-ROOT-和.META.的特殊目录表,他们维护者当前集群上所有区域的列表、状态和位置。—ROOT—表包含.META.表的区域列表。.META.表包含所有用户空间区域的列表,表中的项使用区域名作为键。区域名由所属的表名,区域的起始行、区域的创建时间以及对其整体进行的MD5哈希值组成。

千万记住的是,如果想要删除一个table,首先要先把该table disable掉,然后再执行删除指令。删除一个表的指令为 drop  ‘tablename’。

要想查看一个表是否被disable可以在hbase shell下使用指令  is_disabled 'tablename'

该系列博文仅作为个人学习笔记。

hadoop学习记录(三)HBase基本概念的更多相关文章

  1. Hadoop学习笔记之HBase Shell语法练习

    Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...

  2. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. 3.VUE前端框架学习记录三:Vue组件化编码1

    VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  4. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...

  5. Hadoop学习笔记—15.HBase框架学习(基础实践篇)

    一.HBase的安装配置 1.1 伪分布模式安装 伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster.HRegionServer以及ZooKeeper都在一台计算机上来模拟. 首先 ...

  6. leveldb 学习记录(三) MemTable 与 Immutable Memtable

    前文: leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice 存储格式: leveldb数据在内存中以 Memtable存储(核心结构是skiplist 已介绍 ...

  7. hadoop学习记录1 初始hadoop

    起因 因为工作需要用到,所以需要学习hadoop,所以记录这篇文章,主要分享自己快速搭建hadoop环境与运行一个demo 搭建环境 网上搭建hadoop环境的例子我看蛮多的.但是我看都比较复杂,要求 ...

  8. hadoop学习第三天-MapReduce介绍&&WordCount示例&&倒排索引示例

    一.MapReduce介绍 (最好以下面的两个示例来理解原理) 1. MapReduce的基本思想 Map-reduce的思想就是“分而治之” Map Mapper负责“分”,即把复杂的任务分解为若干 ...

  9. hadoop学习笔记之-hbase完全分布模…

    安装环境: OS: Oracle linux 5.6 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1. Jdk环境 ...

  10. Hadoop集群(三) Hbase搭建

    前面已经完成Zookeeper和HDFS的安装,本文会详细介绍Hbase的安装步骤.以及安装过程中遇到问题的汇总. 系列文章:   Hadoop集群(一) Zookeeper搭建 Hadoop集群(二 ...

随机推荐

  1. SQL Server 执行计划

    当一个查询被提交时,发生了什么? 向SQL Server提交一个查询时,sever上的许多进程会在这个查询上开始工作. 这些进程的目标就是管理这个系统,使得这个查询可以选择,插入,更新,删除数据. 每 ...

  2. Mahout应用(一)

    Mahout应用(一) Mahout 是应用于hadoop上的数据挖掘工具(废话不多说) 这里先简单介绍一下mahout的一般使用方法. 拿kmeans为列子 Mahout中的kmeans所需要的输入 ...

  3. 机器学习----分布问题(二元,多元变量分布,Beta,Dir)

    这涉及到数学的概率问题. 二元变量分布:          伯努利分布,就是0-1分布(比如一次抛硬币,正面朝上概率) 那么一次抛硬币的概率分布如下: 假设训练数据如下: 那么根据最大似然估计(MLE ...

  4. HBase Shell手动移动Region

    在生产环境中很有可能有那么几个Region比较大,但是都运行在同一个Regionserver中. 这个时候就需要手动将region移动到负载低的Regionserver中. 步骤: 1.找到要移动的r ...

  5. Tengine – Nginx衍生版

    Tengine是淘宝在Nginx基础上开发的一个衍生版.官方的简介说针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验. ...

  6. JSF 2 radio buttons example

    In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...

  7. LINUX下成功搭建SVN

    步骤如下: 1: yum install -y subversion 2:svnserve –version 3: [root@singledb ~]# mkdir /u02/svn [root@si ...

  8. POJ 3041 Asteroids (二分图最小点覆盖)

    题目链接:http://poj.org/problem?id=3041 在一个n*n的地图中,有m和障碍物,你每一次可以消除一行或者一列的障碍物,问你最少消除几次可以将障碍物全部清除. 用二分图将行( ...

  9. 从0,1,2...n中统计0,1,2...9各出现了多少次【SWUN1597】

    题目就是说给你一个N.计算一下从0,1,2,3,4,5,,,,,,n-1,n中计算出0,1,2,3,,,,7,8,9分别出现了多少次... #include<cstdio> #includ ...

  10. C++中标准容器Vector,元素操作.insert()小结

    insert() 函数有以下三种用法: iterator insert( iterator loc, const TYPE &val );  //在指定位置loc前插入值为val的元素,返回指 ...