hive只做数据的分析工作,分析后需要将结果交给数据库保存,以供下游消费者消费。
hbase可以完美的胜任数据库的角色。
案例一:建立Hive表,关联HBase表,插入数据到Hive表的同时能够影响HBase表。
准备工作:群起hbase,启动hive的元数据服务和hiveserver2服务
start-hbase.sh
hive --service metastore &
hive --service hiveserver2 &
beeline -u jdbc:hive://主机名:端口号 -n 用户名
①在Hive中创建表同时关联HBase
CREATE TABLE emp_hbase(
empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:ename,info:job,info:mgr,info:hiredate,info:sal,info:comm,info:deptno");
②在Hive中创建临时中间表,用于load文件中的数据
CREATE TABLE emp(
empno int,deptno int)
row format delimited fields terminated by '\t';
③向hive中间表加载数据
load data local inpath '数据文件的本地路径' into table emp;
④将工资大于2000的员工查询出来并插入到emp_hbase中
insert into emp_hbase select * from emp where sal>2000;
⑤查看emp_hbase表中的数据,以及hbase中标的数据是否插入成功
select * from emp_hbase;
scan "emp_hbase"
⑥可以再phoenix端创建视图或者表查询数据
create view "emp_hbase"(
empno varchar primary key,"info"."ename" varchar,"info"."job" varchar,"info"."mgr" varchar,"info"."hiredate" varchar,"info"."sal" varchar,"info"."comm" varchar,"info"."deptno" varchar
);
案例二:如果hbase中已经存在了表格需要做数据分析,可以在hive创建一个外部表关联hbase中的表在hive中对数据进行分析
以上边的emp_hbase举例:
①创建外部表关联hbase中的数据表
CREATE EXTERNAL TABLE relevance_hbase_emp(
empno int,deptno int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" =
":key,info:deptno")
TBLPROPERTIES ("hbase.table.name" = "emp_hbase");
原文地址:https://blog.csdn.net/m0_45847655/article/details/126960019
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。