关键词:
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.HBaseStorageHandler‘WITH 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.HBaseStorageHandler‘WITH 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)面向主题:指数据仓库中的数据是按照一定的主题域进行... 查看详情