HBASE 初级入门
来源:互联网 发布:2015年12月非农数据 编辑:程序博客网 时间:2024/06/03 22:25
目录
- 目录
- HBase概述
- HBase简介
- Hbase的特点
- HBase的优势
- HBase VS RDBMS
- HBase术语及数据模型
- HBase术语说明
- Hbase数据模型简析
- HBase逻辑模型
- HBase物理模型
- HBase物理存储
- HBase存储细节
- HBase伪分布式搭建
- HBase与Java版本
- HBase与Hadoop版本
- HBase体系结构
- 配置步骤
- HBase HDFS目录分析
- WAL
- Region
- HDFS目录
- HBase Shell操作
- HBase Shell基本操作
- HBase 组命令
- general 与namespace演示
1 HBase概述
HBase简介
HBase是一个构建在HDFS之上的、分布式的、面向列的开源数据库,由Google BigTable的开源实现,它主要用于存储海量数据,是Hadoop生态系统中的重要一员。
Hbase的特点
- 大:一个表可以有数十亿行,上百万列
- 面向列:面向列(族)的存储和权限访问,列(族)独立索引
- 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
- 数据类型单一:HBase中的数据类型都是字符串(string)
- 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态增加,同一- 张表中不同的行可以有截然不同的列
HBase的优势
HBase VS RDBMS
2 HBase术语及数据模型
HBase术语说明
- 主键(Row Key)
- 用来检索记录的主键。
- 主键为任意字符串,最大长度为64kb,按字典顺序存储,在HBase内部保存为字节数组
访问HBase 表中的行,只有三种方式 - 通过单个Row Key访问
- 通过Row Key的range
- 全表扫描
- 列族(Column Family)
- 列族在创建表的时候声明,一个列族可以包含多个列,列中的数据都是以二进制形式存在,没有数据类型。
- 列族是一些列的集合。
- 一个列族所有列成员是有着相同的前缀。比如,列courses:history 和 courses:math都是 列族 courses的成员.冒号(:)是列族的分隔符,用来区分前缀和列名
- 时间戳与存储单元(Timestamp and Cell)
- HBase中通过row和columns确定的为一个存贮单元称为cell。每个 cell都保存着同一份数据的多个版本。
- 在写入数据时,时间戳可以由HBase自动赋值(当前系统时间精确到毫秒),也可以显示赋值。
- 每个cell中,不同版本的数据按照时间的倒序排序。
{row, column, version}元组就是一个HBase中的一个 cell。
Hbase数据模型简析
HBase逻辑模型
HBase物理模型
HBase物理存储
HBase存储细节
- 每个列族存储在HDFS上的一个单独文件夹中。
- Key和Version number会在每个列族中存储一份。
- 空值不会保存。
3 HBase伪分布式搭建
- 三种模式
本地/为分布式/集群
HBase与Java版本
HBase与Hadoop版本
HBase体系结构
配置步骤
- 下载0.98 解压
- 修改配置
- hbase-env.sh
- export JAVA_HOME=/url/local/bigdata/jdk1.7.0_67
- 修改hbase-site.xml
- hbase-env.sh
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://10.67.89.240:9000/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/admin/opt/hadoop-2.6.0/data</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property></configuration>
- 修改regionservers
192.168.1.11 - 启动Hbase
bin/hbase-daemon.sh start zookeeper
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
4 HBase HDFS目录分析
WAL
- WAL是RegionServer在处理数据插入和删除的过程中用来记录操作内容的一种日志,在0.94.x叫做.logs
- 向HBase写入数据:
- 存HLog文件,存储在HDFS上
- 存Region:
1)内存
2)spill到磁盘、文件、hdfs文件 - 公式:内存 * 0.4 / 60
Region
HDFS目录
- /hbase/.tmp : 临时目录,当对表做创建和删除的时候,会将表move到该目录下,然后进行操作
- / hbase/data : 核心目录,存储HBase表的数据
- 默认情况下,目录下有两个目录:
/hbase/data/default
在用户创建表的时候,没有指定namespace时,表就创建在此目录下
/hbase/data/hbase
系统内部创建的表
5 HBase Shell操作
HBase Shell基本操作
- HBase提供了一个shell的终端给用户交互
HBase 组命令
- general
- visibility labels
- Security
- Quotas
- Snapshots
- dml
- Tools
- Replication
- ddl
- Namespace
general 与namespace演示
Group name: general
Commands: status, table_help, version, whoamiGroup name: namespace
Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables
hbase(main):006:0> put 'user','rk0001','info:name','lisi'0 row(s) in 0.8480 secondshbase(main):007:0> put 'user','rk0002','info:name','wangwu'0 row(s) in 0.0370 secondshbase(main):008:0> put 'user','rk0003','info:age','20'0 row(s) in 0.0470 secondshbase(main):009:0> scan 'user'ROW COLUMN+CELL rk0001 column=info:name, timestamp=1452764286683, value=lisi rk0002 column=info:name, timestamp=1452764340636, value=wangwu rk0003 column=info:age, timestamp=1452764391871, value=20 3 row(s) in 0.3700 secondshbase(main):010:0> get 'user','rk0001'COLUMN CELL info:name timestamp=1452764286683, value=lisi 1 row(s) in 0.1030 secondshbase(main):011:0> deletedelete delete_all_snapshot delete_snapshot deleteallhbase(main):011:0> deleteall 'user','rk0001'0 row(s) in 0.1680 secondshbase(main):012:0> scan 'user'ROW COLUMN+CELL rk0002 column=info:name, timestamp=1452764340636, value=wangwu rk0003 column=info:age, timestamp=1452764391871, value=20 2 row(s) in 0.0820 secondshbase(main):013:0> disable 'user'0 row(s) in 1.8580 secondshbase(main):014:0> drop 'user'0 row(s) in 0.9640 secondshbase(main):015:0> listTABLE 0 row(s) in 0.0220 seconds=> []hbase(main):016:0> status1 servers, 0 dead, 2.0000 average loadhbase(main):017:0> whoamiadmin (auth:SIMPLE) groups: admin, wheel
0 0
- HBASE 初级入门
- emacs 初级初级入门
- HBase初级问题解决
- HBase概述,HBase入门
- HBase入门
- HBase入门
- HBase入门
- HBase入门
- HBase入门
- HBase入门
- Hbase入门
- Hbase入门
- hbase入门
- Hbase入门
- Hbase入门
- Hbase入门
- HBase 入门
- HBase入门
- eclipse maven 下添加jar包
- AFNetworking 3.0 GET POST 的简单封装(代理回调)
- 使用diskpart命令修复U盘分区
- JSONModel 使用
- web开发的三大基本语言
- HBASE 初级入门
- NoteExpress中文件夹名输入为中文时显示为“??”的解决办法
- 如何从0到1搭建电商促销系统
- 大家好!
- Mac下Git命令汇总
- 注解@Transactional 不起作用的非配置问题
- Fragment Touch事件泄露
- java--异常处理机制
- 计划在CSDN学院推出系列视频课程《源码分析教程5部曲》