Hive安装及与HBase的整合

本文详细介绍了Hive的安装过程,包括Hive的元数据服务部署模式,如内嵌、本地和远程模式,并重点讲解了在Ubuntu系统中安装Hive与MySQL的步骤。此外,文章还深入探讨了Hive如何与HBase整合,包括原理、配置映射表以及功能测试,展示了如何将Hive数据加载到HBase,以及如何在Hive中查询HBase中的数据。

1 Hive简介

Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于Hadoop文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用类SQL语言对这些数据进行自动化管理和处理。我们可以把Hive中海量结构化数据看成一个个的表,而实际上这些数据是分布式存储在HDFS 中的。Hive经过对语句进行解析和转换,最终生成一系列基于Hadoop 的MapReduce任务,通过执行这些任务完成数据处理。

使用Hive的命令行接口,感觉很像操作关系数据库,但是Hive和关系数据库还是有很大的不同,具体总结如下:

一是存储文件的系统不同。Hive使用的是Hadoop的HDFS,关系数据库则是服务器本地的文件系统。

二是计算模型不同。Hive使用MapReduce计算模型,而关系数据库则是自己设计的计算模型。

三是设计目的不同。关系数据库都是为实时查询的业务设计的,而Hive则是为海量数据做数据挖掘设计的,实时性很差。实时性的区别导致Hive的应用场景和关系数据库有很大的不同。

四是扩展能力不同。Hive通过集成Hadoop使得很容易扩展自己的存储能力和计算能力,而关系数据库在这个方面要比数据库差很多。

Hive的技术架构如下图所示。


由上图可知,Hadoop和MapReduce是Hive架构的根基。Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、Web GUI、Metastore和Driver(Complier、Optimizer和Executor),这些组件可分为服务端组件和客户端组件两大类。

首先来看服务端组件:

Driver组件包括Complier、Optimizer和Executor,它的作用是将我们写的HiveQL语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架。

Metastore组件是元数据服务组件,它存储Hive的元数据,Hive的元数据存储在关系数据库里,支持的关系数据库有derby和mysql。元数据对于Hive十分重要,因此Hive支持把Metastore服务独立出来,安装到远程的服务器集群里,从而解耦Hive服务和Metastore服务,保证Hive运行的健壮性。

Thrift Server是Facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,Hive集成了该服务,能让不同的编程语言调用Hive的接口。

再来看看客户端组件:

CLI即command lineinterface,命令行接口。

JDBC/ODBC 是Thrift的客户端。

Web GUI是Hive客户端提供的一种通过网页的方式访问Hive的服务。这个接口对应Hive的hwi组件,使用前要启动hwi服务。

2 Hive内置服务

Hive自带了许多服务,可在运行时通过service选项来明确指定使用什么服务,或通过--service help来查看帮助。下面介绍最常用的一些服务。

(1)CLI:这是Hive的命令行界面,用的比较多。这是默认的服务,直接可以在命令行里面使用。

(2)hiveserver:这个可以让Hive以提供Trift服务的服务器形式来运行,可以允许许多不同语言编写的客户端进行通信。可以通过设置HIVE_PORT环境变量来设置服务器所监听的端口号,在默认的情况下,端口为 10000。最新版本(hive1.2.1)用hiveserver2取代了原有的hiveserver。

(3)hwi:它是Hive的Web接口,是hive cli的一个web替换方案。

(4)jar:与Hadoop jar等价的Hive接口,这是运行类路径中同时包含Hadoop和Hive类的Java应用程序的简便方式。

(5)Metastore:用于连接元数据库(如mysql)。在默认情况下,Metastore和Hive服务运行在同一个进程中,端口号为9083。使用这个服务,可以让Metastore作为一个单独的进程运行,我们可以通过METASTORE_PORT来指定监听的端口号。

3 Metastore部署模式

3.1 内嵌模式

内嵌模式使用内嵌的Derby数据库存储元数据,只能单用户操作,一般用于单元测试。其架构图如下所示。

3.2 本地模式

本地模式与内嵌模式最大的区别在于数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值