博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase与Hive整合
阅读量:2430 次
发布时间:2019-05-10

本文共 3366 字,大约阅读时间需要 11 分钟。

整合背景

hbase是一种面向列簇的nosql数据库,主要用于存储结构化和非结构化的数据,但是原生不支持sql,同时由于良好的写入性能,主要用于实时数据的存储。

hive将hdfs文件映射为一张表,支持类SQL语句对其进行管理,不支持实时更新,主要用于离线数据仓库。

hive同时也提供了与hbase的集成,使得能够在hbase表上使用HQL语句进行查询。

配置步骤
hive版本:apache 1.2.2hbase版本:apache 1.2.6

1.拷贝hbase相关jar包到hive lib目录下

cp /root/software/hbase-1.2.6/lib/hbase-it-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-server-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-hadoop2-compat-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-hadoop-compat-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-client-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-common-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/hbase-protocol-1.2.6.jar  /root/software/hive-1.2.2/lib cp /root/software/hbase-1.2.6/lib/htrace-core-3.1.0-incubating.jar  /root/software/hive-1.2.2/lib

2.拷贝hbase-site.xml到hive conf目录下

cp /root/software/hbase-1.2.6/conf/hbase-site.xml  /root/software/hive-1.2.2/conf/hbase-site.xml

3.修改hive-env.sh文件

vim /root/software/hive-1.2.2/conf/hive-env.sh export HBASE_HOME=/root/software/hbase-1.2.6
验证

1.创建hbase表并插入数据

# 创建表hbase(main):001:0> create 't1', {
NAME=>'f1'};# 插入数据hbase(main):003:0> put 't1', '0001', 'f1:name', 'zhangsan' hbase(main):004:0> put 't1', '0001', 'f1:age', '30'hbase(main):006:0> put 't1', '0002', 'f1:name', 'lisi' hbase(main):007:0> put 't1', '0002', 'f1:age', '29'

2.创建hive表

hive> CREATE EXTERNAL TABLE hbase_t1(id int,name string,age int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,f1:name,f1:age") TBLPROPERTIES("hbase.table.name" = "t1");#hive外部表字段与hbase表字段对应关系(id <--> rowkey, name <--> f1:name, age <--> f1:age)"hbase.columns.mapping" = ":key,f1:name,f1:age"#hive外部表对应的hbase表名为t1"hbase.table.name" = "t1"

3.通过hive sql访问hbase表数据

hive> select * from hbase_t1;OK1       zhangsan        302       lisi    29Time taken: 0.313 seconds, Fetched: 2 row(s)hive> select count(*) from hbase_t1;Query ID = root_20200303102934_f5bea28c-3c06-4d43-ac15-be436853189eTotal jobs = 1Launching Job 1 out of 1Number of reduce tasks determined at compile time: 1In order to change the average load for a reducer (in bytes):  set hive.exec.reducers.bytes.per.reducer=
In order to limit the maximum number of reducers: set hive.exec.reducers.max=
In order to set a constant number of reducers: set mapreduce.job.reduces=
Starting Job = job_1583248050275_0001, Tracking URL = http://master:8088/proxy/application_1583248050275_0001/Kill Command = /root/software/hadoop-2.6.5/bin/hadoop job -kill job_1583248050275_0001Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 12020-03-03 10:29:49,791 Stage-1 map = 0%, reduce = 0%2020-03-03 10:30:08,544 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 14.12 sec2020-03-03 10:30:17,965 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 16.93 secMapReduce Total cumulative CPU time: 16 seconds 930 msecEnded Job = job_1583248050275_0001MapReduce Jobs Launched: Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 16.93 sec HDFS Read: 7030 HDFS Write: 2 SUCCESSTotal MapReduce CPU Time Spent: 16 seconds 930 msecOK2Time taken: 44.955 seconds, Fetched: 1 row(s)

转载地址:http://becmb.baihongyu.com/

你可能感兴趣的文章
小团队的微服务之路
查看>>
K8S精华问答 | Kubernetes集群不能正常工作,难道是防火墙问题?
查看>>
5G精华问答 | 什么是5G?5G与LTE有什么关系?
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>
微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?
查看>>
Kubernetes 调度器实现初探
查看>>
边缘计算精华问答 | 边缘计算有哪些应用场景?
查看>>
要闻君说:Synergy Research Group首发云基础设施数据,腾讯云v5一把;京东物流发力5G;厉害!阿里挖走贾扬清...
查看>>
数据中台精华问答 | 数据中台和传统数仓的区别是什么?
查看>>
这是一则计算机视觉顶级会议CVPR与腾讯的爆闻,啥?
查看>>
如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
查看>>
【C语言】C语言中常用函数源代码【strncpy ,strncat ,strncmp】
查看>>
【Java】【算法练习】题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。如果是输出yes,不是输出no,数组任意两个数字不相同。
查看>>
【Java】给定一个二叉树和其中的一个节点,请找出中序遍历的下一个节点且返回, 注意:树中的节点不仅包含左右子节点,同时包含父节点的指针。
查看>>
【Java】【多线程】—— 多线程篇
查看>>
【计算机网络】—— TCP/IP篇
查看>>
【Java】【算法】——算法篇
查看>>
【Java】【数据库】知识重点——数据库篇
查看>>
【Java】知识重点——消息队列篇
查看>>
【Java】学习总结 —— HashMap之put()方法实现原理
查看>>