HBASE表的设计
最关键一点,最重要的一点
rowkey的设计
-1.不能重复
-2.前缀匹配原则
-3.热点性
常用倒转字段方法
如何将数据迁入到/存储到HBASE表中
方式一:批量将数据存储到HBASE表中
使用MapReduce或者Spark程序完成
SQOOP将RDBMS表中的数据导入到HBASE表中
方式二:实时将采集到数据存储到HBASE
调用HBase Java API ,存储数据
Put/get/scan
HBase中的nameSpace
相当于MySql数据库中的数据库
用来存放、区分表
HBase表中检索数据的方式
方式一:全部扫描
scan
方式二:单条获取 —速度最快的
get rowkey
方式三:范围查询 —使用最多
scan 设置查询范围条件rowkey
存储是按照rowkey排序的
使用Sqoop将Mysql中的数据导入HBase中
第一步:配置Sqoop配置文件
告知HBase与Zookeeper的位置
导入命令
--将RDBMS中数据导入HBASE表中
bin/sqoop import \
--connect jdbc:mysql://主机名/数据库名 \
--username 数据库登录名 \
--password 密码 \
--table 表名 \
--columns "字段1,字段2...." \
--hbase-table "HBase中的表" \
--column-family info \
--hbase-row-key 指定主键 \
--num-mappers 1 \
--hbase-create-table
HBase检查是否导入
--查看条目数
count "表名"
--查看前10条
scan "表名",{ LIMIT => 10}
创建表的预分区
Region的划分
HBase表中存储的数据按照rowkey字典升序进行排序的,
-1.按照row划分Region(区域)
类比于HDFS存储数据划分为很多个Block(128MB)
-a.默认情况下,创建一个表的时候,只有一个Region,并且startKey和endKey都是null,
-b.在实现的项目中,需要进行预分区(指定region的个数)
-2.每个Region划分范围
[startkey,endKey)
表示的是Region中仅仅包含startKey开始到endKey结束的数据