hbase与hive的集成操作(代码片段)

wnwn wnwn     2022-12-13     248

关键词:

1.介绍

  Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询,同时也可以将hive表中的数据映射到HBase中;

2.模型概念

  2.1 将ETL操作的数据存入HBase

    技术图片

  2.2 HBase作为Hive的数据源

    技术图片

  2.3 构建低延时的数据仓库

    技术图片

3.搭建环境

  3.1 修改hive-site.xml文件 

<property>
    <name>hive.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
    <name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
<property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
</property>

  3.2 更新jar文件

#删除hive的安装目录下默认存在的hbase的jar文件
rm -rf /opt/module/hive/lib/hbase-*.jar
#将hbase的lib目录下的jar文件复制到hive下
cp /opt/module/hbase/lib/hbase-*.jar /opt/module/hive/lib
#删除hive安装目录下默认存在的zookeeper的jar文件
rm -rf /opt/module/hive/lib/zookeeper-*.jar
#将zookeeper下的jar文件复制到hive下
cp /opt/module/zookeeper/zookeeper-*.jar /opt/module/hive/lib  

4.案例

  4.1 HBase的表映射到Hive中

    4.1.1 在HBase中创建的表如下

create hbase_test,NAME => f1,VERSIONS => 1,
NAME => f2,VERSIONS => 1,
NAME => f3,VERSIONS => 1

    4.1.2 插入如下数据

put hbase_test,r1,f1:name,zhangsan
put hbase_test,r1,f2:age,20
put hbase_test,r1,f3:sex,male
put hbase_test,r2,f1:name,lisi
put hbase_test,r2,f2:age,30
put hbase_test,r2,f3:sex,female
put hbase_test,r3,f1:name,wangwu
put hbase_test,r3,f2:age,40
put hbase_test,r3,f3:sex,male

    4.1.3 查询数据

      技术图片

    4.1.4 创建基于hbase的hive数据表

create external table hiveFromHbase(rowkey String,f1 map<STRING,STRING>,f2 map<STRING,STRING>,f3 map<STRING,STRING>)STORED BY org.apache.hadoop.hive.hbase.HBaseStorageHandlerWITH SERDEPROPERTIES("hbase.columns.mapping"=":key,f1:,f2:,f3:")TBLPROPERTIES("hbase.table.name"="hbase_test");

      注意:这里使用外部表映射到hbase中的表,这样,在hive中删除表,并不会删除hbase中的表,否则,就会删除;另外,除了rowkey,其他三个字段使用map结构来保存hbase中的每一个列族;

      hbase.columns.mapping:hive表和hbase表的字段映射关系,分别为:hive表中第一个字段映射:key(rowkey),第二个字段映射列族f1,第三个字段映射列族f2,第四个字段映射列族f3;

      hbase.table.name:映射到hbase上的表名;

    4.1.5 连接hive,查看hivefromhbase表中的数据

      技术图片

  4.2 hive中插入数据到hbase表

    4.2.1 创建映射hbase的表

create table hive_test(id String,name String,age int,address String)STORED BY org.apache.hadoop.hive.hbase.HBaseStorageHandlerWITH SERDEPROPERTIES("hbase.columns.mapping"=":key,f1:name,f2:age,f3:address")TBLPROPERTIES("hbase.table.name"="hbaseFromhive");

    4.2.2 查看hbase的映射表是否产生

      技术图片

    4.2.3 查看hbase映射表中的数据

      技术图片

      由于hive表中没有加载数据,此时hbase中映射没有数据;

    4.2.4 向hive的数据表中插入数据

insert into table hive_test values(001,sjdf,18,beijing);

    4.2.5 再次检索位于hbase的映射数据表

      技术图片

 

hbase与hive集成(代码片段)

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

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是一种分布式... 查看详情

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

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

hbase总结(代码片段)

...念总结HBase的架构MasterRegionServer结构功能HBase的安装与shell操作安装启动与关闭ddl与dml操作ddl(表操作)dml(数据操作)HBase进阶HBase的高性能原理架构细节读写流程MemStoreFlushMemStore刷写时机合并与切分JAVAAPITOCHBase概述Hbase是一张大表(十... 查看详情

hbase与hive(代码片段)

...数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行。2.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与mapreduce集成(代码片段)

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

hbase表与hive表的映射操作(代码片段)

一、环境准备需要将HBase的jar包拷贝到Hive中,以便Hive运行时能访问到Hbase这里演示创建软连接的方式ln-s$HBASE_HOME/lib/HBase-common-1.3.1.jar$HIVE_HOME/lib/HBase-common-1.3.1.jarln-s$HBASE_HOME/lib/HBase-server-1.3.1.jar$HIVE_HOME/lib/HBase-server-1.3.1.jarln-s$HBASE... 查看详情

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

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

flink与hbase交互(代码片段)

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

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

...中的数据读取到并经过处理保存到ClickHouse中一Hbase1Hbase表操作1.1创建命名空间hbase(main):008:0>create_namespace 查看详情

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

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

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

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

hive教程---整合hbase

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

hive整合hbase

摘要Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中。??应用场景2.1将ETL操作的数据存入HBase???? ???2.2HBase作为Hive的数据源?? ??2.3... 查看详情

hbase集成mapreduce(代码片段)

集成分析HBase表中的数据最终都是存储在HDFS上,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase表中的数据,并且MR可以将处理后的结果直接存储到HBase表中。参考地址:http://hbase.apache.org/book.html#mapreduce1实现方式一读取HBas... 查看详情

hive手册(代码片段)

...3Hive应用3.1Hive内置函数3.2SQL介绍与Hive应用场景3.2.1数据库操作和表操作3.2.2查询语句3.3表注释添加3.4表删除操作3.4.1有Partition分区表3.4.2没有Partition分区表4HIVE数据的压缩与存储格式4.1压缩4.1.1压缩概述4.1.2压缩策略与原则4.2Hadoop压... 查看详情

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

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