使用Hive如何和Hbase集成,Hbase和Hive的底层存储都在HDFS上,都是hadoop生态系统中的重要一员,所以他们之间有着很亲密的联系,可以相互转换与操作。
hadoop,hbase和hive的搭建就不重复说了,不会的朋友,可以看散仙前面的博客,下面直接进入重点,关于hive集成hbase这一块,网上资料不算多,有的版本比较旧,散仙这里使用的版本是hive0.12和hbase0.96.2。
hive集成hbase的方式其实很简单,就是把Hbase的几个jar包,拷贝到hive的lib目录下即可截图如下:
上面的几个包放进Hive的lib中之后,我们需要配置在hive-site.xml里面配置下Hbase的zk地址,便于Hive连接Hbase使用,添加配置如下:
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>h1,h2,h3</value>
- </property>
<property> <name>hbase.zookeeper.quorum</name> <value>h1,h2,h3</value> </property>
下面可以进行测试,我们直接把Hbase里的一张表,转成我们的Hive表,Hive启动前,首先要把Hadoop和Hbase启动起来,然后启动Hive,启动完进程如下所示:
- [search@h1 ~]$ jps
- 7950 RunJar
- 6559 DataNode
- 7691 HRegionServer
- 6879 ResourceManager
- 7563 HMaster
- 6985 NodeManager
- 7474 HQuorumPeer
- 6731 SecondaryNameNode
- 6458 NameNode
- 8120 Jps
- [search@h1 ~]$
[search@h1 ~]$ jps 7950 RunJar 6559 DataNode 7691 HRegionServer 6879 ResourceManager 7563 HMaster 6985 NodeManager 7474 HQuorumPeer 6731 SecondaryNameNode 6458 NameNode 8120 Jps [search@h1 ~]$
先在hbase里建一张表,并添加列簇,和列数据如下:
- hbase(main):001:0> list
- TABLE
- SLF4J: Class path contains multiple SLF4J bindings.
- SLF4J: Found binding in [jar:file:/home/search/hbase-0.96.2-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
- SLF4J: Found binding in [jar:file:/home/search/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
- SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
- mytest
- webpage
- 2 row(s) in 3.0870 seconds
- => ["mytest", "webpage"]
- hbase(main):002:0> scan 'mytest'
- ROW COLUMN+CELL
- 2207 column=item:name, timestamp=1407329588864, value=hadoop
- 23008 column=home:address, timestamp=1407329589330, value=shenzhen
- 2309 column=info:age, timestamp=1407329589497, value=899
- 24008 column=home:address, timestamp=1407329588587, value=guangzhou
- 2407 column=item:name, timestamp=1407329588447, value=big data
- 2409 column=info:age, timestamp=1407329588728, value=22.32
- 3109 column=info:age, timestamp=1407329588308, value=7.4
- 321008 column=home:address, timestamp=1407329588169, value=luoyang
- 33107 column=item:name, timestamp=1407329588028, value=x-code
- 4205 column=home:address, timestamp=1407329587701, value=beijing
- 44101 column=info:age, timestamp=1407329587883, value=18.5
- 444105 column=item:name, timestamp=1407329587555, value=a dog
- 12 row(s) in 0.0980 seconds
hbase(main):001:0> list TABLE SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/search/hbase-0.96.2-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/search/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. mytest webpage 2 row(s) in 3.0870 seconds => ["mytest", "webpage"] hbase(main):002:0> scan 'mytest' ROW COLUMN+CELL 2207 column=item:name, timestamp=1407329588864, value=hadoop 23008 column=home:address, timestamp=1407329589330, value=shenzhen 2309 column=info:age, timestamp=1407329589497, value=899 24008 column=home:address, timestamp=1407329588587, value=guangzhou 2407 column=item:name, timestamp=1407329588447, value=big data 2409 column=info:age, timestamp=1407329588728, value=22.32 3109 column=info:age, timestamp=1407329588308, value=7.4 321008 column=home:address, timestamp=1407329588169, value=luoyang 33107 column=item:name, timestamp=1407329588028, value=x-code 4205 column=home:address, timestamp=1407329587701, value=beijing 44101 column=info:age, timestamp=1407329587883, value=18.5 444105 column=item:name, timestamp=1407329587555, value=a dog 12 row(s) in 0.0980 seconds
在Hive里,执行如下语句,进行关联建表:
- hive> CREATE EXTERNAL TABLE hbaseive(key int, name string,address string,age double)
- > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
- > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,item:name,home:address,info:age")
- > TBLPROPERTIES ("hbase.table.name" = "mytest");
hive> CREATE EXTERNAL TABLE hbaseive(key int, name string,address string,age double) > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,item:name,home:address,info:age") > TBLPROPERTIES ("hbase.table.name" = "mytest");
如果不报错,就证明,集成成功,如果出现错误,一般都是hbase的某个jar包缺少造成,我们根据提示添加到hive的lib里即可,然后重启hive的的shell客户端。
建表成功后,查询如下:
- hive> select * from hbaseive;
- OK
- 2207 hadoop NULL NULL
- 23008 NULL shenzhen NULL
- 2309 NULL NULL 899.0
- 24008 NULL guangzhou NULL
- 2407 big data NULL NULL
- 2409 NULL NULL 22.32
- 3109 NULL NULL 7.4
- 321008 NULL luoyang NULL
- 33107 x-code NULL NULL
- 4205 NULL beijing NULL
- 44101 NULL NULL 18.5
- 444105 a dog NULL NULL
- Time taken: 0.481 seconds, Fetched: 12 row(s)
- hive>
hive> select * from hbaseive; OK 2207 hadoop NULL NULL 23008 NULL shenzhen NULL 2309 NULL NULL 899.0 24008 NULL guangzhou NULL 2407 big data NULL NULL 2409 NULL NULL 22.32 3109 NULL NULL 7.4 321008 NULL luoyang NULL 33107 x-code NULL NULL 4205 NULL beijing NULL 44101 NULL NULL 18.5 444105 a dog NULL NULL Time taken: 0.481 seconds, Fetched: 12 row(s) hive>
至此,我们的Hive集成Hbase就成功了,关联成功后,我们就可以对数据进行分析了,需要注意的是,我们关联过的hbase表,如果在Hbase里面删除了这个表,那么在Hive里面再次查询,就会报错,如果删除了Hive里面的表,则对Hbase没有影响。另外一点需要注意的是,使用Hive关联Hbase的建的表,是一个内部表,所以需要在Create 后面加上 external关键字 。
相关推荐
1. 数据分析:HIVE可以使用类SQL和各种函数来对HBASE中的数据进行分析和处理。 2. 数据存储:HIVE可以将数据存储在HBASE中,并且可以使用HBASE的高性能和高可用性特点来存储大量数据。 3. 数据整合:HIVE可以将来自...
hive0.8.1和hbase0.92.0集成的hive-hbase-handler.Jar包,里面包含:hbase-0.92.0.jar、hbase-0.92.0-tests.jar、hive-hbase-handler-0.9.0-SNAPSHOT.jar。经测试没有问题。
在大数据处理领域,Hive和HBase都是广泛使用的工具,各有其特定的优势。Hive作为一个基于Hadoop的数据仓库工具,适合于数据批处理和分析,而HBase则是一款分布式、高性能的NoSQL数据库,适用于实时数据查询。本文将...
本压缩包"scala-hive-HBASE-Api.7z"包含了2019年8月至10月间用于工作的相关jar包,主要用于支持Scala、Hive和HBase的集成开发。 首先,让我们来深入了解一下这三个核心概念: 1. **Scala**:Scala是一种多范式的...
hive0.10.0和hbase0.94.4集成的hive-hbase-handler.Jar包,经测试没有问题。
【描述】:本压缩包包含Apache Hive 1.2.2和HBase 1.2.6的安装包,旨在介绍如何在大数据处理环境中将这两个组件结合使用,实现高效的数据存储和查询。 【标签】:Hive、HBase、大数据、数据仓库、NoSQL数据库、集成...
标题 "Hive整合HBase资源文件.zip" 指向的是一个关于如何将Apache Hive与Apache HBase集成的教程或工具包。Hive是大数据处理领域的一个重要组件,主要用于结构化数据的查询和分析,而HBase则是一个分布式、列式存储...
jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
综上所述,Hive 和 HBase 在 Hadoop 生态系统中扮演着不同的角色,它们各有优势,可以根据具体的应用需求选择合适的技术。例如,在构建数据仓库时可以选择 Hive 进行数据整合和批量处理,而对于需要快速响应的在线...
hive-1.2.2集成hbase1.2.6版本的包,本人亲身踩坑多次才编译成功的一个jar包
Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql 语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中
标题“spark-2.4.0-hive-hbase-Api.7z”表明这是一个与Apache Spark、Apache Hive和Apache HBase相关的压缩包文件,适用于版本2.4.0。这个压缩包很可能包含了这三个组件的API库,使得开发人员能够在集成环境中进行...
描述中提到,“用于Hive和HBase的连接,通过hive操作hbase上的表”,这表明这些JAR文件是为了解决Hive与HBase集成的问题。Hive-HBase连接器允许用户在Hive中创建外部表,将这些表映射到HBase的数据表,从而可以在...
用户应确保选择兼容的HBase和Hive版本进行部署,以避免潜在的集成问题。 4. HBase与ZooKeeper的版本兼容性: ZooKeeper是HBase依赖的一个重要组件,HBase的运行需要ZooKeeper的协同工作。由于ZooKeeper是独立的...
该文档将分为四部分:Hadoop 集群环境搭建、HBase 集群环境搭建、Hive 集群环境搭建和 Sqoop 集成使用。 一、Hadoop 集群环境搭建 1.1 JDK 安装与配置 在开始搭建 Hadoop 集群环境前,我们需要先安装并配置 JDK。...
数据仓库实战:Hive、HBase、Kylin、ClickHouse 包含 01~大数据体系 02~数据集成 03~数仓建模 04~数据可视化 等等 在学习与实践软件分布式架构过程中的,笔记与代码的仓库;主要包含分布式计算、分布式系统、数据...
对于开发者来说,理解和掌握Hadoop、HBase、Hive的整合使用,是提升大数据处理能力的关键。通过阅读相关的文档,如官方手册、技术博客、社区讨论等,可以深入学习这些组件的原理和实践技巧,从而更好地运用在实际...
- **集成性**:HBase与Hadoop生态系统中的其他组件(如HDFS、MapReduce、Pig、Hive等)高度集成。 #### 7. RowKey的设计原则 **知识点解析:** RowKey是HBase中非常关键的概念,它直接影响到数据的查询性能。 - *...
标题中的“Spring Boot+Hadoop+Hive+Hbase实现数据基本操作”是一个关于大数据处理技术集成应用的项目。这个项目结合了四个重要的组件来处理和管理大规模数据: 1. **Spring Boot**: 是一个基于Java的框架,用于...