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'
该系列博文仅作为个人学习笔记。
hadoop学习记录(三)HBase基本概念的更多相关文章
- Hadoop学习笔记之HBase Shell语法练习
Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...
- JavaScript学习记录三
title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 3.VUE前端框架学习记录三:Vue组件化编码1
VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...
- Hadoop学习笔记—15.HBase框架学习(基础实践篇)
一.HBase的安装配置 1.1 伪分布模式安装 伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster.HRegionServer以及ZooKeeper都在一台计算机上来模拟. 首先 ...
- leveldb 学习记录(三) MemTable 与 Immutable Memtable
前文: leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice 存储格式: leveldb数据在内存中以 Memtable存储(核心结构是skiplist 已介绍 ...
- hadoop学习记录1 初始hadoop
起因 因为工作需要用到,所以需要学习hadoop,所以记录这篇文章,主要分享自己快速搭建hadoop环境与运行一个demo 搭建环境 网上搭建hadoop环境的例子我看蛮多的.但是我看都比较复杂,要求 ...
- hadoop学习第三天-MapReduce介绍&&WordCount示例&&倒排索引示例
一.MapReduce介绍 (最好以下面的两个示例来理解原理) 1. MapReduce的基本思想 Map-reduce的思想就是“分而治之” Map Mapper负责“分”,即把复杂的任务分解为若干 ...
- hadoop学习笔记之-hbase完全分布模…
安装环境: OS: Oracle linux 5.6 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1. Jdk环境 ...
- Hadoop集群(三) Hbase搭建
前面已经完成Zookeeper和HDFS的安装,本文会详细介绍Hbase的安装步骤.以及安装过程中遇到问题的汇总. 系列文章: Hadoop集群(一) Zookeeper搭建 Hadoop集群(二 ...
随机推荐
- C# 引用类型的"祸害"
前端时间刚刚弄完一个项目,终于有时间来总结与回顾了. 项目需求:给用户发送邮件,邮件分为系统邮件和个人邮件,需要按时间.未读降序排列. 一开始以为,这是一个很简单的需求,给邮件建了一个对象: clas ...
- SDN环境搭建(mininet,OVS,ryu安装及命令)
1.mininet安装与使用 1.1mininet安装 ubuntu 12.04/14.04/14.10 命令行 sudo apt-get install mininet 1.2 mini ...
- windows下编译支持https的libcurl
本文参考http://blog.csdn.net/fragmentalice/article/details/39430293特此感谢.公司项目中用到几个http get请求,用的libcurl开源库 ...
- Nginx和Tengine的详细安装图文教程(Linux下)
简洁安装 安装依赖 yum -y install gcc openssl-devel pcre-devel zlib-devel 编译三步走./configure \ --prefix=/opt/sx ...
- Azure 公网及内网ip绑定方法
此文章为我的云服务绑定情况,仅供参考,适用于已经创建vm,但开始未绑定vip,后期进行vip的绑定,注意:绑定ip会造成虚拟机暂时离线. -Location(vm所在地) 注意区分 北部和东部: Ch ...
- Spring EL Lists, Maps example
In this article, we show you how to use Spring EL to get value from Map and List. Actually, the way ...
- Linux系统管理员应该了解的一些I/O统计工具
作为一个Linux系统管理员,统计各类IO是一项必不可少的工作.其统计工具中iostat显然又是最重要的一个统计手段.但是这里iostat不是本文的重点,因为这个工具的使用在网络上已经有大量的教程,可 ...
- ASP.NET Web Form和MVC中防止F5刷新引起的重复提交问题
转载 http://www.cnblogs.com/hiteddy/archive/2012/03/29/Prevent_Resubmit_When_Refresh_Reload_In_ASP_NET ...
- [支付]微信NATIVE扫码支付JAVA实现
步骤: 1.预订单 2.接受微信返回的url 3.将url转为二维码显示到页面上 4.扫码支付 5.接收微信的异步通知,在这步修改订单的状态 6.收到异步通知的同时给微信返回指定数据,告知对方已成功处 ...
- UI进阶 CocoaPods的安装使用步骤
一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...