你好,游客 登录 注册 搜索
背景:
阅读新闻

hadoop学习记录(三)HBase基本概念

[日期:2016-06-12] 来源:博客园-原创精华区  作者: [字体: ]

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

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

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

HBase

  具体的安装过程参照了厦门大学数据实验室的安装教程,个人感觉这里面的安装步骤非常详细,非常少适合新人上手,只要懂得基本的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'

 

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





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款