HBase概述与基础命令(一)

HBase概述

HBase是一个领先的NoSQL数据库
是一个面向列存储的数据库
是一个分布式hash map
基于Google Big Table论文
使用HDFS作为存储并利用其可靠性
Hbase特点
数据访问速度快,响应时间约2-20毫秒
支持随机读写,每个节点20k~100k+ ops
可拓展性,可拓展到20000+节点
HBase应用场景-1
数据增量-时间序列数据
高容量,高读写入
在这里插入图片描述

HBase应用场景-2
信息交换-消息传递
高容量,高速读写
在这里插入图片描述

HBase应用场景-3
内容服务-Web后端应用程序
高容量,高速读写
在这里插入图片描述

HBase物理架构-概述

HBase采用Master/Slave架构
HMaster
RegionServer
Zookeeper
HBase Client
Region
在这里插入图片描述

HBase物理架构-HMaster

HMaster的作用
是HBase集群的主节点,可以配置多个,用来实现HA
管理和分配Region
负责RegionServer的负载均衡
发现失效的RegionServer并重新分配其上的Region

HBase物理架构-RegionServer

RegionServer股则管理维护Region
一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region
一个Region包含多个存储区,每个存储区对应一个列族
一个存储区由多个StoreFile和MemStore组成
一个StoreFile对应于一个HFile和一个列族
HFile和WAL作为序列文件保存在HDFS上
Client与RegionServer交互
在这里插入图片描述

HBase物理架构-Region和Table

单个Table(表)被分区成大小大致相同的Region
Region是HBase集群分布数据的最小单位
Region被分配给集群中的RegionServer
一个Region只能分配给一个RegionServer
在这里插入图片描述

HBase逻辑架构-Row

Rowkey(行键)是唯一的并已排序
Schema可以定义何时插入记录
每个Row都可以定义自己的列,即使其他Row不使用
相关列定义为列簇
使用唯一时间戳维护多个Row版本
在不同版本中值类型可以不用
HBase数据全部以字节存储
在这里插入图片描述

HBase数据管理

数据管理目录
系统目录表hbase:meta
存储元数据等
HDFS目录中的文件
Servers上的region实例
HBase数据在HDFS上
可以通过HDFS进行修复File
修复路径
RegionServer -> Table -> Region -> RowKey -> 列簇
在这里插入图片描述

HBase架构特点

强一致性
自动拓展
1.当Region变大会自动分割
2.使用HDFS拓展数据并管理空间
写恢复
1.使用WAL(Write Ahead Log)
与Hadoop集成

HBase Shell

HBase Shell是一种操作HBase的交互模式
支持完整的HBase命令集

命令类别命令
Generalversion, status, whoami, help
DDLalter, create, describe, disable, drop, enable, exists, is_disabled, is_enabled, list
DMLcount, delete, deleteall, get, get_counter, incr, put, scan, truncate
Toolsassign, balance_switch, balancer, close_region, compact, flush, major_compact, move, split, unassign, zk_dump
Replicationadd_peer, disable_peer, enable_peer, remove_peer, start_replication, stop_replication

Hbase基本命令

用户权限:
	user_permission ['表名'...]
	grant '用户名', 'RWXCA'
表:
	增:create '表名', {NAME => '列簇名'}, {NAME => '列簇名'}...
	删除表:disable '表名'
			drop '表名'
	修改表:snapshot '表名', '镜像名'
			clone_snapshot '镜像名', '新表名'
			delete_snapshot '镜像名'
	查:list(列出HBase所有表名)
行:
	put的时候:put '表名', '行键', '列簇名:列名', '值' [,时间戳]
	可单独删除行,行内数据全部删除
列簇:
	增:alter '表名', NAME => '列簇名'
	删:alter '表名', NAME => '列簇名', METHOD = 'delete'
	改:先加,后删
	查:get '表名','行键', '列簇名'
列
cell:值+时间戳
	查看当前用户:whoami
	version 	-- 查看版本 
	status 	-- 查看集群状态

批量导入文件:
在HBase中创建表

crate 'emp_basic',{NAME => 'emp'},{NAME => 'time'}

在linux下

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
	-Dimporttsv.separator="," \ 
	-Dimporttsv.columns="HBASE_ROW_KEY,\
	emp:name,emp:job_title,emp:company,time:sDate,time:eDate" \
	"emp_basic" /wctest/emp_basic.csv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值