zoukankan      html  css  js  c++  java
  • hadoop学习记录(三)HBase基本概念

    这一次开始学习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'

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

  • 相关阅读:
    适配不同屏幕的宏
    phpstrom 10 激活
    php三维数组去重
    Ajax总结
    Node.js中处理异步编程(使用回调处理一次性事件,使用事件监听器处理重复性事件)
    JavaScript中函数对象的call()和apply()方法的总结
    jQuery中prop()方法和attr()方法可能遇到的问题小结
    Node.js中url的parse、format、resolve方法详解
    处理跨域方式
    JS获取网页窗口大小、浏览器窗口大小、页面元素位置
  • 原文地址:https://www.cnblogs.com/kinsomy/p/5575395.html
Copyright © 2011-2022 走看看