hbase与hive集成(代码片段)

chenshaowei chenshaowei     2023-04-12     329

关键词:

之前有操作过HBase和Hive的案例,将30w条数据从Hive导入HBase。使用sqoop可以快速简单做到,但是在最新版HBase2.0与最新版Hive3.0之间,旧版sqoop不行,因此当时使用了JDBC来连接两者,达到数据导出的目的。


HBase与Hive的对比

Hive
  • 作为数据仓库,Hive的本质是将HDFS已经存储的文件在MySQL中做了一个双射关系,以方便使用HiveQL管理查询
  • 用于数据分析、清洗,Hive适用于离线的数据分析和清洗
HBase
  • 数据库,面向列族存储的非关系型数据库
  • 用于存储结构化和非结构化的数据,不适合做关联查询,join
  • 延迟较低,高效的数据访问

集成使用

案例一

建立Hive表,关联HBase表,插入数据到Hive表的同时能够影响HBase表

在Hive中创建表同时关联HBase
CREATE TABLE hive_hbase_emp_table(
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")
TBLPROPERTIES ("hbase.table.name" = "hbase_emp_table");

创建完,HBase也会出现此表

在Hive中创建临时中间表,用于load文件中的数据
CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int)
row format delimited fields terminated by '	';

不能将数据直接load到Hive关联HBase的表中,因此要创建中间表

向Hive中间表中load数据
hive> load data local inpath '/home/admin/softwares/data/emp.txt'
into table emp;
通过insert命令将中间表中的数据导入Hive关联HBase的表中
INSERT INTO TABLE hive_hbase_emp_table
SELECT * FROM emp;

此时Hive和HBase两张表都插入了数据

总结

Hive可以直接创建表关联到HBase,用中间表导入数据后插入关联表。

案例二

在HBase中已经存储了一张表hbase_emp_table,在Hive中创建关联表,就可以使用Hive来分析HBase数据

CREATE EXTERNAL TABLE relevance_hbase_emp(
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:co
mm,info:deptno")
TBLPROPERTIES ("hbase.table.name" = "hbase_emp_table");
总结

这样就不需要通过JavaAPI读取HBase数据,然后编程做MapReduce程序处理业务逻辑,可直接通过Hive,效率提高了。遇到部分特殊情况,估计还是得通过JavaAPI。

hbase与hive集成(代码片段)

...据,不适合做关联查询,join延迟较低,高效的数据访问集成使用案例一建立Hive表,关联HBase表,插入数据到Hive表的同时能够影响HBase表在Hive中创建表同时关联HBaseCREATETABLEhive_hbase_emp_table(empnoint,enamestring,jobstring,mgrint,hiredatestring,s... 查看详情

spark集成hbase与hive数据转换与代码练习

  帮一个朋友写个样例,顺便练手啦~一直在做平台的各种事,但是代码后续还要精进啊。。。1importjava.util.Date23importorg.apache.hadoop.hbase.HBaseConfiguration4importorg.apache.hadoop.hbase.client.{Put,Scan,Result}5importorg.apache.hadoop.hbase. 查看详情

hbase(代码片段)

...duce将本地数据导入到HBase4.3.3自定义HBase-MapReduce4.4与Hive的集成4.4.1HBase与Hive的对比4.4.2HBase与Hive集成使用5HBase优化5.1高可用5.2预分区5.3RowKey设计5.4内存优化5.5基础优化6HBase实战之谷粒微博总结#1HBase简介1.1HBase定义HBase是一种分布式... 查看详情

hive与hbase整合(代码片段)

Hive与Hbase整合1.文档  HiveHBaseIntegration 2.拷贝jar文件2.1.把Hbase的lib目录下面的jar文件全部拷贝到Hive的lib目录下面cd/home/hbase/libcp./*/home/hive/lib 2.2.把Hive的lib目录下面的hive-hbase-handler-0.13.1.jar拷贝到Hbase的lib目录下面cp/home/hiv... 查看详情

hbase与hive(代码片段)

...数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行。2.HBase数据库:是一种面向列族存储的非关系型数据库。用于存储结构 查看详情

新闻实时分析系统hive与hbase集成进行数据分析

(一)Hive概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive架构设计  (四)Hive的优点及应用场景 (五)Hive的下载和安装部署1.Hive下载Apache版本的Hive。Cloudera版本的Hive。这里选择下载Apache稳定版本apache-hive-0.1... 查看详情

新闻网大数据实时分析可视化系统项目——12hive与hbase集成进行数据分析

(一)Hive概述(二)Hive在Hadoop生态圈中的位置(三)Hive架构设计(四)Hive的优点及应用场景(五)Hive的下载和安装部署1.Hive下载Apache版本的Hive。Cloudera版本的Hive。这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至b... 查看详情

hbase与mapreduce集成(代码片段)

感觉效率不是很高,是否能用sqoop来解决HBase与其他文件系统的数据导入导出。通过HBase的相关JavaApi,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地文件导入HBase的表中,或我们从HBase的表中读取一些原... 查看详情

hive教程---整合hbase

目录6.4.1HBase与Hive的对比6.4.2HBase与Hive集成使用6.4.1HBase与Hive的对比Hive(1)数据仓库Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。(2)用于数据分析、清洗Hive适用于离线的数据... 查看详情

hbase 到 hive 集成失败

】hbase到hive集成失败【英文标题】:hbasetohiveintegrationfailure【发布时间】:2019-02-2010:15:43【问题描述】:我在“hbase”表中有两个值id和name的行、列族h1“hbase_sample”。我想用id和name列在hive中创建外部表,我不想写行或关键字段... 查看详情

建立hive和hbase的映射关系,通过spark将hive表中数据导入clickhouse(代码片段)

HBase+Hive+Spark+ClickHouse​在HBase中建表,通过Hive与HBase建立映射关系,实现双方新增数据后彼此都可以查询到。通过spark将Hive中的数据读取到并经过处理保存到ClickHouse中一Hbase1Hbase表操作1.1创建命名空间hbase(main):008... 查看详情

HBase Hive 集成 - 错误

】HBaseHive集成-错误【英文标题】:HBaseHiveIntegration-Error【发布时间】:2015-01-2020:08:31【问题描述】:当我尝试使用Hive逻辑表将数据从HDFS加载到HBase时,我遇到了以下问题。我是hadoop新手,无法追踪错误,我正在使用CDH4VM,创建... 查看详情

数据库与数据仓库的比较hbase——hive

...仓库(DataWarehouse)是一个面向主题的(SubjectOriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策。(1)面向主题:指数据仓库中的数据是按照一定的主题域进行... 查看详情

hbase集成phoenix创建二级索引(代码片段)

一、Hbase集成Phoneix1、下载在官网http://www.apache.org/dyn/closer.lua/phoenix/中选择提供的镜像站点中下载与安装的HBase版本对应的版本。本地使用的1.2.5,故下载的apache-phoenix-4.11.0-HBase-1.2/的tar.gz包。2、上传并解压tar-zxvfapache-phoenix-4.13.1-H... 查看详情

新闻实时分析系统hive与hbase集成进行数据分析clouderahue大数据可视化分析

1.Hue概述及版本下载1)概述Hue是一个开源的ApacheHadoopUI系统,最早是由ClouderaDesktop演化而来,由Cloudera贡献给开源社区,它是基于PythonWeb框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析... 查看详情

flink与hbase交互(代码片段)

...原始的高效操作方式,而第二、第三则分别是Spark、Flink集成HBase的方式,最后一种是第三方插件Phoenix集成的JDBC方式,Phoenix集成的JDBC操作方式也能在Spark、Flink中调用。注意:这里我们使用HBase2.1.2版本,flink1.7.2版本,scala-2.12版... 查看详情

hive/hbase/sqoop的安装教程(代码片段)

Hive/Hbase/Sqoop的安装教程 HIVEINSTALL1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/2.上传到Linux指定目录,解压:mkdirhivemvapache-hive-2.3.3-bin.tar.gzhivetar-zxvfapache-hive-2.3.3-bin.tar 查看详情

hive+hbase,用hql查询hbase(代码片段)

Hive整合HBase:数据实时写Hbase,实现在Hive中用sql查询以下操作的Hive版本:2.3.6,HBase版本:2.0.4在HBase中创建表:t_hbase_stu_infocreate‘t_hbase_stu_info‘,‘st1‘在Hive中创建外部表:t_hive_stu_infocreateexternaltablet_hive_stu_info(idint,namestring,ageint,s... 查看详情