赞
踩
在cdh6.3.2已经做好hbase和hive相关配置,这里不阐述。
要创建上述的表结构,你需要先在HBase中创建相应的表,然后在Hive中创建一个EXTERNAL TABLE来映射到这个HBase表。以下是详细的步骤:
打开HBase shell:
hbase shell
在HBase shell中,创建一个表analysis_minute
和一个列族bls
:
create 'analysis_minute', 'bls'
退出HBase shell:
quit
使用Hive的命令行界面或者你的IDE来执行下面的SQL语句:
- CREATE EXTERNAL TABLE analysis_minute_hbase (
- key STRING,
- pid STRING,
- time STRING,
- val STRING
- )
- STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
- WITH SERDEPROPERTIES (
- 'hbase.columns.mapping' = ':key,bls:pid,bls:time,bls:val',
- 'serialization.format' = '1'
- )
- TBLPROPERTIES (
- 'hbase.table.name' = 'analysis_minute',
- 'last_modified_by' = 'hdfs',
- 'last_modified_time' = '1713990161',
- 'numFiles' = '0',
- 'numFilesErasureCoded' = '0',
- 'numRows' = '0',
- 'rawDataSize' = '0',
- 'storage_handler' = 'org.apache.hadoop.hive.hbase.HBaseStorageHandler',
- 'totalSize' = '0'
- );
这段SQL语句做了以下几件事情:
HBaseStorageHandler
来允许Hive与HBase交互。WITH SERDEPROPERTIES
定义了Hive字段到HBase列族的映射。TBLPROPERTIES
定义了HBase表的名称和其他属性。analysis_minute
和列族bls
已经存在,Hive才能正确创建EXTERNAL TABLE。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。