Hive集成HBase详解
- 使用HQL语句创建一个指向HBase的Hive表
CREATE TABLE hbase_table_1(key int, value string) //Hive中的表名hbase_table_1 STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' //指定存储处理器 WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") //声明列族,列名 TBLPROPERTIES ("hbase.table.name" = "xyz", "hbase.mapred.output.outputtable" = "xyz"); //hbase.table.name声明HBase表名,为可选属性默认与Hive的表名相同, //hbase.mapred.output.outputtable指定插入数据时写入的表,如果以后需要往该表插入数据就需要指定该值
- 通过HBase shell可以查看刚刚创建的HBase表的属性
$ hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Version: 0.20.3, r902334, Mon Jan 25 13:13:08 PST 2010 hbase(main):001:0> list xyz 1 row(s) in 0.0530 seconds hbase(main):002:0> describe "xyz" DESCRIPTION ENABLED {NAME => 'xyz', FAMILIES => [{NAME => 'cf1', COMPRESSION => 'NONE', VE true RSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]} 1 row(s) in 0.0220 seconds hbase(main):003:0> scan "xyz" ROW COLUMN+CELL 0 row(s) in 0.0060 seconds
- 使用HQL向HBase表中插入数据
INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=98;
- 在HBase端查看插入的数据
hbase(main):009:0> scan "xyz" ROW COLUMN+CELL 98 column=cf1:val, timestamp=1267737987733, value=val_98 1 row(s) in 0.0110 seconds
- 创建一个指向已经存在的HBase表的Hive表
CREATE EXTERNAL TABLE hbase_table_2(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf1:val") TBLPROPERTIES("hbase.table.name" = "some_existing_table", "hbase.mapred.output.outputtable" = "some_existing_table");
- 建表或映射表的时候如果没有指定:key则第一个列默认就是行键
- HBase对应的Hive表中没有时间戳概念,默认返回的就是最新版本的值
- 由于HBase中没有数据类型信息,所以在存储数据的时候都转化为String类型
CREATE TABLE hbase_table_1(key int, value1 string, value2 int, value3 int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = ":key,a:b,a:c,d:e" ); INSERT OVERWRITE TABLE hbase_table_1 SELECT foo, bar, foo+1, foo+2 FROM pokes WHERE foo=98 OR foo=100;
CREATE TABLE hbase_table_1(value map<string,int>, row_key int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = "cf:,:key" ); INSERT OVERWRITE TABLE hbase_table_1 SELECT map(bar, foo), foo FROM pokes WHERE foo=98 OR foo=100;
- 在HBase下查看数据
hbase(main):012:0> scan "hbase_table_1" ROW COLUMN+CELL 100 column=cf:val_100, timestamp=1267739509194, value=100 98 column=cf:val_98, timestamp=1267739509194, value=98 2 row(s) in 0.0080 seconds
- 在Hive下查看数据
hive> select * from hbase_table_1; Total MapReduce jobs = 1 Launching Job 1 out of 1 ... OK {"val_100":100} 100 {"val_98":98} 98 Time taken: 3.808 seconds
CREATE TABLE hbase_table_1(key int, value map<int,int>) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = ":key,cf:" );
CREATE TABLE hbase_table_1(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = ":key,cf:" );
CREATE EXTERNAL TABLE delimited_example(key struct<f1:string, f2:string>, value string) ROW FORMAT DELIMITED COLLECTION ITEMS TERMINATED BY '~' STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,f:c1');
- 对HBase表进行预分区,增大其MapReduce作业的并行度
- 合理的设计rowkey使其尽可能的分布在预先分区好的Region上
- 通过set hbase.client.scanner.caching设置合理的扫描缓存
参考资料:
Hive HBase Integration
转载于:https://www.cnblogs.com/MOBIN/p/5704001.html
Hive集成HBase详解相关推荐
- 图解大数据 | 海量数据库查询-Hive与HBase详解
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
编者按:HDFS和MapReduce是Hadoop的两大核心,除此之外Hbase.Hive这两个核心工具也随着Hadoop发展变得越来越重要.本文作者张震的博文<Thinking in BigD ...
- Thinking in BigData(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
纯干货:Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解. 通过这一阶段的调研总结,从内部机理的角度详细分析,HDFS.MapReduce.Hbase.H ...
- hive linux进程数,控制Hive MAP个数详解
控制Hive MAP个数详解 Hive的MAP数或者说MAPREDUCE的MAP数是由谁来决定的呢?inputsplit size,那么对于每一个inputsplit size是如何计算出来的,这是做 ...
- php java集成_PHP和Java 集成开发详解分析 强强联合第1/4页
PHP和Java 集成开发详解分析 强强联合第1/4页 更新时间:2008年11月14日 12:28:23 作者: 很久以前,有人从www上看到看到天空上一个很亮的亮点,它就是Java语言,与此同 ...
- 2022-09-07 Hive集成HBase
HQL 语法 一.Hive集成HBase <property><name>hive.zookeeper.quorum</name><value>hado ...
- [Hive] - Hive参数含义详解
hive中参数分为三类,第一种system环境变量信息,是系统环境变量信息:第二种是env环境变量信息,是当前用户环境变量信息:第三种是hive参数变量信息,是由hive-site.xml文件定义的以 ...
- 万字HBase详解带你畅游大数据的海豚湾
写在前面:我是「且听风吟」,目前是某上市游戏公司的大数据开发工程师,热爱大数据开源技术,喜欢分享自己的所学所悟,现阶段正在从头梳理大数据体系的知识,以后将会把时间重点放在Spark和Flink上面. ...
- hive 集成hbase 笔记
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行.其优点学习成本低,可以通过类 ...
最新文章
- html table增加删除编辑,一个可以增加和删除行的table并可编辑表格中内容
- file的open()和read()
- vc:如何从Internet上有效而稳定地下载文件
- C语言打印彩色字符——以(枚举法+字符串查找)为例展示
- typedef四用途与两陷阱
- 关于H5跳转到小程序和android的方法
- android api 打开慢,为什么下了android 4.1 的SDK后在本地用浏览器看api说明文档时,浏览器打开api的html文件很慢?试了好几款浏览器都一样。为什么?...
- Struts向JSP中传值
- mysql 查看当前数据库编码_MySQL查看并修改当前数据库编码
- Java基础知识面试复习大纲
- IT十八掌徐培成第三天笔记
- bootstrap-selectpicker
- 22牛客多校1 J.Serval and Essay (启发式合并)
- linux命令——ll详解
- 小学英语中常见的英语反义词
- 五子棋等级考试软件的开发(一)
- 蚊子凭啥只咬你?科学家用 5 年造出一批“脑子发光”的蚊子,终于搞懂背后机制
- Node.js 前世今生
- Asp.Net MVC EF各版本区别
- 单片机ip地址的更改
热门文章
- 关于java自动生成一个tostring-json,解决hibernate框架,每次全属性输出,的数据动态且限制对象的属性书写到前端,使用模板!
- 使用 qemu 搭建内核开发环境
- ashx 跨域_ASP.NET通用HTTP处理程序(ashx的),支持JSONP
- 快速排序的三种实现方法
- tfrecord数据报错 InvalidArgumentError: Feature: feature (data type: string) is required but could not
- c++中lambda表达式用法
- exit() 与_exit的区别
- ExitInterface
- Struts2之一个Action包含多个控制处理逻辑
- 软件架构设计最佳实践