百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Hadoop学习(9)—— Apache Hive安装部署

haoteby 2025-05-15 17:56 2 浏览

Apache Hive元数据

什么是元数据

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

Hive Metadata

  • Hive Metadata即Hive的元数据。
  • 包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。
  • 元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。

Hive Metastore

  • Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接MySQL数据库来存取元数据。
  • 有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。某种程度上也保证了hive元数据的安全。

metastore配置方式

  • metastore服务配置有3种模式:内嵌模式、本地模式、远程模式。
  • 区分3种配置方式的关键是弄清楚两个问题:
    Metastore服务是否需要单独配置、单独启动?
    Metadata是存储在内置的derby中,还是第三方RDBMS,比如MySQL。

metastore远程模式

在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过,Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性。

Apache Hive部署实战

安装前准备

  • 由于Apache Hive是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此不管使用何种方式配置Hive Metastore,必须要先保证服务器的基础环境正常,Hadoop集群健康可用。
  • 服务器基础环境
    集群时间同步、防火墙关闭、主机Host映射、免密登录、JDK安装。
  • Hadoop集群健康可用
    启动Hive之前必须先启动Hadoop集群。特别要注意,需等待HDFS安全模式关闭之后再启动运行Hive。Hive不是分布式安装运行的软件,其分布式的特性主要借由Hadoop完成。包括分布式存储、分布式计算。

Hadoop与Hive整合

  • 因为Hive需要把数据存储在HDFS上,并且通过MapReduce作为执行引擎处理数据;
  • 因此需要在Hadoop中添加相关配置属性,以满足Hive在Hadoop上运行。
  • 修改Hadoop中core-site.xml,并且Hadoop集群同步配置文件,重启生效。
<!--整合hive -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

Step1:MySQL安装

Step2:上传解压Hive安装包

tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin/ /export/server
# 解决Hive与Hadoop之间guava版本差异(删除原来的 将Hadoop的复制过来)
cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.1/share/hadoop/common/lib/guava-27.0-jre.jar \./lib/

Step3:修改hive-env.sh

cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/export/server/hadoop-3.3.1
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib

Step4:新增hive-site.xml

在conf目录下创建hive-site.xml

<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://10.180.109.164:3307/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!-- H2S运行绑定host 和你自己的一样就行-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!-- 远程模式部署metastore metastore地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>

Step5:添加驱动、初始化

  • 上传MySQL JDBC驱动到Hive安装包lib路径下mysql-connector-java-8.0.14.jar (和数据库版本一致)
  • 初始化Hive的元数据。
cd /export/server/apache-hive-3.1.2-bin/
bin/schematool -initSchema -dbType mysql -verbose #初始化成功会在mysql中创建74张表

metastore服务启动方式

  • (1)前台启动,进程会一直占据终端,ctrl + c结束进程,服务关闭。可以根据需求添加参数开启debug日志,获取详细日志信息,便于排错。
#前台启动
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore
#前台启动开启debug日志
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console 
#前台启动关闭方式ctrl+c结束进程
  • (2)后台启动,输出日志信息在/root目录下nohup.out
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
#后台挂起启动结束进程
使用jps查看进程使用kill -9 杀死进程
#nohup 命令,在默认情况下(非重定向时),会输出一个名叫nohup.out 的文件到当前目录下

Apache Hive客户端使用

Hive自带客户端

  • bin/hive、bin/beeline
  • Hive发展至今,总共历经了两代客户端工具。
  • 第一代客户端(deprecated不推荐使用):$HIVE_HOME/bin/hive, 是一个shellUtil。主要功能:一是可用于以交互或批处理模式运行Hive查询;二是用于Hive相关服务的启动,比如metastore服务。
  • 第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方强烈推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。

HiveServer2服务介绍

  • 远程模式下beeline通过Thrift 连接到单独的HiveServer2服务上,这也是官方推荐在生产环境中使用的模式。
  • HiveServer2支持多客户端的并发和身份认证,旨在为开放API客户端如JDBC、ODBC提供更好的支持。

关系梳理

  • HiveServer2通过Metastore服务读写元数据。所以在远程模式下,启动HiveServer2之前必须先首先启动metastore服务。
  • 特别注意:远程模式下,Beeline客户端只能通过HiveServer2服务访问Hive。而bin/hive是通过Metastore服务访问的。具体关系如下:

bin/beeline客户端使用

  • 在hive安装的服务器上,首先启动metastore服务,然后启动hiveserver2服务。
#先启动metastore服务 然后启动hiveserver2服务
nohup /export/servers/hive/bin/hive --service metastore & (上面已经启动)
nohup /export/servers/hive/bin/hive --service hiveserver2 &
  • 使用beeline客户端进行连接访问。需要注意hiveserver2服务启动之后需要稍等一会才可以对外提供服务
  • Beeline是JDBC的客户端,通过JDBC协议和Hiveserver2服务进行通信,协议的地址是:jdbc:hive2://node1:10000
[root@node1 bin]# /export/server/apache-hive-3.1.2-bin/bin/beeline
Beeline version 3.1.2 by Apache Hive
beeline> ! connect jdbc:hive2://node1:10000
Connecting to jdbc:hive2://node1:10000
Enter username for jdbc:hive2://node1:10000: root
Enter password for jdbc:hive2://node1:10000: ****
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://node1:10000> show databases;

beeline连接配置说明

Hive可视化客户端-DataGrip

1 打开IDEA,点击打开项目,创建文件目录。

2 DataGrip连接Hive

3 配置Hive JDBC连接驱动

4 导入jar包

将hive的lib目录下的全部包导出到本地文件夹中,然后在IDEA中引入

5 返回,配置Hiveserver2服务连接信息

相关推荐

5个珍藏多年的资源网站,免费又实用,建议收藏

今天给大家分享5个珍藏多年的资源网站,每个都是免费的,而且非常的实用,建议收藏。1、wallhaven一个国外知名的壁纸网站,拥有海量的8k、4k的超清图片壁纸,该网站的图片是由各地的创作者提供下载,...

设计网站推荐 | 国内外设计类素材网站

网站分享|十个不得不推荐的设计类素材网站!一些压箱底的常用的设计类素材分享!一定要打开这些网站试一试哦!...

阿里巴巴旗下菜鸟裹裹换新LOGO?长高了

LOGO大师整理编辑(ID:logods)...

10个做PPT必备的素材网站,越用越上瘾,每个都是宝藏

Pexelshttps://www.pexels.com/zh-cn/...

阿里旗下的四款免费小工具 好用并且能大大提升工作效率

好的工具能大大的提升你的工作效率,今天给大家分享的是阿里旗下的四款经典免费小工具,主要是用来设计,能方便,且高效的提高你的工作效率,觉得有用就收藏了吧。第一个:阿里巴巴图标库阿里巴巴图标库有将近80多...

UI设计入门干货!八大软件+技能+素材网站

随着互联网行业的发展,UI设计师越来越多的被提及,UI设计师大火,需求岗位越来越多,也有越来越多的人转行投身UI设计师。UI设计是什么?一般所说的UI设计多指UI视觉设计,主要负责APP、Web、H5...

干货!宝藏PPT素材——海量图标免费使用

我是星辰四个月的假期收集了一些PPT素材,筹备了这个公众号今天终于和大家见面了此公众号不定时更新各种素材干活和PPT模板记得关注我哦~后台发送“PPT”领取免费PPT模板总是很难找到合适PPT素材?费...

写了100多篇原创文章,我常用的在线工具网站推荐给大家

摘要不知不觉写博客已经一年多了,累计写了100多篇原创文章,今天给大家分享下我经常使用的在线工具网站,希望对大家有所帮助!MarkdownNice支持自定义样式的在线Markdown编辑器,编辑完成...

设计者必备神器:必须收藏的在线软件推荐

本内容来源于@什么值得买SMZDM.COM|首席生活家保密对于新电脑或重新刷系统的电脑,安装一堆软件是很费时间的,而软件多了会对系统运行速度有影响,特别是机械硬盘,响应时间与软件数量成正比的。而用了...

干货 | 设计师必备网站,大神作品、图片素材一网打尽

经常会听到这样的一句话:设计师每日正式开始工作的第一件事,就是打开3个及以上的设计/素材网站。网站中的优秀作品不仅可以帮助设计师提升自己,还能激发创作的灵感,所以今天,我们为大家整理了一些国内外优秀的...

推荐11个超好用的在线作图网站

现在做图好像已经不是设计师的专利不管是新媒体人、文案,还是随便一个人不会随时随地做几张漂亮图不能分分钟出点海报、封面图、邀请函什么的还怎么昂首挺胸在办公室里混不会PS没关系,不会做图可不行所以今天老贼...

做设计还只知道花瓣包图网?这100+个免费商用素材网站送给你

作为设计师你常用的网站是哪些呢?花瓣?站酷?千库?千图?包图?这些网站确实是大家最常用的网站,各种风格的元素、模板、源文件,用起来可以说是得心应手了~但是一旦出现了这个场景,你就也跟着崩溃了........

5个好看的图标网站,直接搜索下载

今天和大家分享5个图标网站,里面收录大量丰富的图标,在这里找到好图标不是什么难事。Iconsdbwww.iconsdb.com...

8个高清无版权的图片资源网站,质量高又免费,够你用一辈子

很多时候我们找素材总是要花费很多时间,今天就给大家分享8个,高清无版权的图片资源网站,质量高又免费,够你用一辈子。01*Logosc...

淘宝PPT设计师不会告诉你的4个网站!帮你剩下不少钱

之前的文章中,给各位推荐过图片素材网站,像:500px,unsplash等,也给各位推荐过图标网站,像阿里巴巴图标库。这些网站都很好用。但是,我最近发现,有一类素材网站,在做PPT时也会经常用到,...