Hbase-MR
hbase
google: gfs -》 hdfs
mapreduce -》 mapreduce
bigtable -》 hbase
Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储。
当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase™。该项目的目
标是托管非常大的表 - 数十亿行X百万列 - 在商品硬件集群上。Apache HBase是一
个开源的,分布式的,版本化的非关系数据库nosql,模仿Google的Bigtable: Cha
ng等人的结构化数据分布式存储系统。正如Bigtable利用Google文件系统提供的分布
式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能。
hbase集群角色
hdfs:NameNode datanode
yarn:ResourceManager NodeManager
hbase:HMaster RegionServer
主从结构
HMaster:对RegionServer监控
处理一些元数据的变更
对RegionServer进行故障转移
空闲时对数据进行负载均衡
对region进行管理
发布位置到客户端借助于zookeeper
RegionServer:存储hbase实际的数据
刷新缓存数据到hdfs
处理Region
可以进行压缩
对Hlog进行维护
对region分片
hbase集群安装部署
1)需要安装好zookeeper集群
2)需要安装好hadoop集群
hdfs
yarn
3)解压hbase压缩包
tar -zxvf hbase.tar.gz
4)修改配置hbase-env.sh
export JAVA_HOME=
export HBASE_MANAGES_ZK=false
5)配置hive-site.xml
见笔记文件
6)解决依赖问题
见笔记文件
7)软连接core-site.xml hdfs-site.xml
ln -s /root/hd/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
ln -s /root/hd/hadoop-2.8.4/etc/hadoop/core-site.xml
8)访问ui界面
http://192.168.20.101:16010/master-status
hbase设计架构
Rowkey行键 类似 id
列式存储
hbase操作
1)查看表操作
list
2)显示当前服务器状态
status 'hd-01'
1 active master, 0 backup masters, 4 servers, 0 dead, 0.5000 ave
rage load
1 active master:一个存活的master
0 backup masters:0个备份master
4 servers:r个regionserver
0 dead:没有挂掉的
0.5000 average load:平均加载
3)显示当前用户
whoami
4)创建表
create '表名','列族'
5)添加数据
put '表名','rowkey','列族:列','值'
6)全表扫描
scan '表名'
7)hbase没有修改,只有覆盖
put 'lovereba','1011','info1:name','mimi'
只要对应上表名、rowkey、列族、列即可
8)查看表结构
describe 'lovereba'
9)变更表结构信息
alter 'lovereba',{NAME => 'info1',VERSIONS=>'8'}
10)查看指定的数据信息
指定具体的rowkey
get 'lovereba','1011'
指定具体的列
get 'lovereba','1011','info1:name'
11)清空表
truncate 'lovereba'
12)删除表
需要先指定不可用
disable '表名'
drop '表名'
13)扫描指定范围
scan 'user',{STARTROW =>'2202'}
scan 'user',{STARTROW =>'2202',STOP =>'2204'}
14)统计rowkey的个数
count 'user'
15)退出hbase shell
quit
hbase读取数据流程
见图
hbase写数据流程
见图
hbaseAPI
core-site.xml
hbase-site.xml
hdfs-site.xml
hbasemr
hbase主要擅长的领域是存储数据,不擅长分析数据。
hbase如果想计算的话需要结合hadoop的mapreduce。
hbase-mr所需的jar包查看
bin/hbase mapredcp
配置临时环境变量
export HBASE_HOME=/root/hd/hbase-1.3.0
export HADOOP_HOME=/root/hd/hadoop2.8.4
export HADOOP_CLASSPATH= ${HBASE_HOME}/bin/hbase mapredcp
跑hbase-mr程序
bin/yarn jar /root/hd/hbase-1.3.0/lib/hbase-server-1.3.0.jar row
counter user