Hive架构及搭建方式

本文详细介绍了Hive的基本架构,包括内嵌服务、数据库部署方式,以及hcatalog和客户端的使用。重点讲解了Hive的部署过程,包括metastore、hiveserver2和客户端的配置,特别是高可用部署和Kerberos认证。此外,还列举了一些常见错误及其解决方案,如Guava版本冲突和MySQL驱动问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive架构及搭建方式

[TOC]

前言

本文档基于hive 3.1.2编写

hive的基础知识

基本架构

  • 整个hive由hiveserver2和hive 客户端组成
  • hive客户端有三种,beeline 、使用jdbc链接hiveserver、或使用hive CLI(这个已经过时,hive官方已经不推荐,推荐beeline)
  • hive server本身由hive server2和metastore组成
  • metastore是hive的元数据管理组件
  • hcatalog 架设在metastore上,暴露一组api,使得其它框架,比如Pig,FLink能够使用hive的元数据管理功能,从而以表视角去管理数据
  • webchat 是在hcatalog基础上暴露restful接口
  • hive 的实际数据存储在hadoop的hdfs中
  • hue提供一个图形化的方式,方便用户做基于sql的开发,当然还有其他附加功能

    metastore

    hive的数据本质上存储在hdfs中的。如何以表的视角看到数据,这就是metastore的功劳,它存储了表的schema信息、序列化信息、存储位置信息等

metastore本身由两部分组成

  • metastore server
  • metatore db

这个经典的架构,像任何一个单体java应用一样,server是应用本身,db来存储数据。但具体metastore整体的部署模式上,有三种

内嵌服务和数据库

metastore server和metastore DB同hive server部署在一起,以内嵌的方式部署 其中metastore DB是启动了一个内嵌的Derby数据库

内嵌服务

metastore server还是跟hive一起部署。 但metastore DB使用独立的Mysql来承接

服务和数据库单独部署

除了数据库独立部署之外,metastore service本身也独立部署

hcatalog

hcatalog 架设在metastore上,暴露一组api,使得其它框架,比如Pig,FLink能够使用hive的元数据管理功能,从而以表视角去管理数据

demo

hadoop distcp file:///file.dat hdfs://data/rawevents/20100819/data

hcat "alter table rawevents add partition (ds='20100819') location 'hdfs://data/rawevents/20100819/data'"

上述命令先将文件拷贝到hdfs,然后通过hcatalog,将这份数据做为表rawevents的一个新分区

客户端

客户端的本地模式

上述介绍的metastore的嵌入或remote部署,都是以hiveserver的视角来说的。hiveserver本身是独立的部署。但在hive客户端来说,可以通过remote模式,连接到已经部署好的remote server 。 还可以启动客户端的时候,顺带起一个本地的hive server和其对应的metastore。这一点一定要搞清楚

beeline

做为hive推荐的新一代客户端。他使用Thrift 远程调用。 beeline的本地模式

$HIVE_HOME/bin/hiveserver2 #先独立部署hiveserver
$HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT # 然后以host加port的形式跟hiveserver链接

beeline的本地模式

$HIVE_HOME/bin/beeline -u jdbc:hive2://  #就是不加host和port,该操作会在同一个进程启动hiveserver 和metastore,以及beeline 。 不建议这样使用,只做单元测试

本地和远程的区别,就是是否指定远程的Host和port。没有的话,就是本地模式

beeline的自动模式

每次通过beeline连接远端的hiveserver时,需要指定很长一段的jdbc url,很麻烦,如果我们想敲击beeline命令,直接就连接远端的hiveserver2,则可以在hive的配置文件目录添加beeline-site.xml配置文件,文件内容大致如下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>beeline.hs2.jdbc.url.tcpUrl</name>
  <value>jdbc:hive2://localhost:10000/default;user=hive;password=hive</value>
</property>

<property>
  <name>beeline.hs2.jdbc.url.httpUrl</name>
  <value>jdbc:hive2://localhost:10000/default;user=hive;password=hive;transportMode=http;httpPath&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值