Fork me on GitHub

HBase核心技术点

表的rowkey设计核心思想:

  1. 依据rowkey查询最快
  2. 对rowkey进行范围查询range
  3. 前缀匹配

预分区创建的三种方式

create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40']

create 't1', 'f1', SPLITS => ['10', '20', '30', '40']

create 't1', 'f1', SPLITS_FILE => '/home/hadoop/data/splits.txt', OWNER => 'johndoe'
# 在 splits.txt 文件中指定rowkey:
10,
20,
30,
40,
50

create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 'myvalue' }

# 指定java预分区类名称
create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}

tail -f 在命令列控制窗口中使用 tail -f,它将会以一定的时间实时追踪.

基于SQL语法查询HBase

Phoenix实现用SQL查询HBase

http://www.cnblogs.com/hbase-community/category/1181796.html

hbase二级索引

  1. 使用solr构建hbase二级索引:

    https://www.cnblogs.com/kekukekro/p/6340944.html

  2. 使用phoenix构建HBase二级索引

    https://www.2cto.com/net/201702/601121.html

HBase 表数据压缩

  1. snappy

HBase数据读写流程

https://blog.csdn.net/u011490320/article/details/50814967

HBse中数据管理

hbase中数据删除不是真正的删除,只是做了一个删除标记;在compaction过程中才会真正的删除。 满足删除条件的数据:

1. 做了删除标记的

2. 超过版本号限制的

3. 数据生存时间到期的

两种compaction:

1. 合并(minor)

2. 压缩合并(major)

 

Hive和HBase集成

  • 数据存储在HBase中
  • hive 表的描述信息存储在hive中
  • 对应元素

    1. hive-table hbase-table
    2. hive-column hbase-rowkey,hbase-cf-column
    3. storehandler
  • 集成方式,如果hive/lib目录中没有相关jar,需要把相关jar软连接到该目录

https://blog.csdn.net/victory0508/article/details/69258686

管理表

创建hive表的时候,指定数据存储在hbase表中。

CREATE TABLE hbase_table_1(key int, value string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "xyz");

外部表

现在已经存在一个HBase表,需要对表中数据进行分析。

CREATE EXTERNAL TABLE hbase_user(id int, name string,age int) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age")
TBLPROPERTIES ("hbase.table.name" = "user");

本质

Hive就是HBase客户端。

sqoop 把关系型数据库数据导入到hive

HBase与Hue集成

如果跨语言需要启动thrift server

posted @ 2018-04-22 18:08  迁梦余光  阅读(334)  评论(0编辑  收藏  举报