Hive架构简述及工作原理
Posted 思屿`
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive架构简述及工作原理相关的知识,希望对你有一定的参考价值。
一、什么是Hive?
Hive是基于Hadoop的一个数据仓库管理工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL(HQL)查询功能。本质是将SQL转换为MapReduce程序(默认)。
直接使用Hadoop MapReduce处理数据所面临的问题: 学习成本高,MapReduce实现复杂查询功能开发难度大,使用Hive接口采用类SQL语法,提供快速开发的能力避免了去写MapReduce,减少开发人员的学习成本功能。
二、Hive架构及组件
用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为Shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:通常是存储在关系数据库如 mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
解释器、编译器、优化器、执行器:完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
三、Hive三种部署模式:
内嵌模式
1、元数据存储在内置的derby数据库中;
2、不需要单独配置metastore 也不需要单独启动metastore服务;
适合测试体验,适合单机单人使用。不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享。
本地模式
1、元数据使用外置的RDBMS,常见的是MySQL数据库;
2、不需要单独配置metastore 也不需要单独启动metastore服务
每启动一次hive服务,都内置启动了一个metastore。如果使用多个客户端进行访问,就需要有多个Hiveserver服务,此时会启动多个Metastore可能出现资源竞争现象。
远程模式
1、元数据使用外置的RDBMS,常见的是MySQL数据库;
2、metastore服务单独配置,单独启动,全局唯一。
这样各个客户端只能通过这一个metastore服务访问Hive.
四、Hive客户端
Hive的第一代客户端
- bin/hive
- 直接访问metastore服务
- 第一代客户端属于shell脚本客户端,性能友好安全,方面存在不足,Hive已经不推荐使用,官方建议使用第二代客户端beeline
Hive的第二代客户端
-
bin/beeline
-
- 此时还无法访问metastore服务,只能够访问Hiveserver2服务
-
- beeline客户端,需要先连接metastore服务,再使用
-
# 在安装hive的服务器上(主机1),首先启动metastore服务,再启动hiveserver2服务 nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore & nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 & # 在任意机器(如机器2)上使用beeline客户端访问 /export/server/apache-hive-3.1.2-bin/bin/beeline # 启动beeline后进入如下界面 beeline> ! connect jdbc:hive2://node1:10000 #jdbc访问HS2服务 Connecting to jdbc:hive2://node1:10000 Enter username for jdbc:hive2://node1:10000: root #用户名 要求具备HDFS读写权限 Enter password for jdbc:hive2://node1:10000:
hiveserver2服务启动后无法立即使用, 类似于HDFS的安全模式,大概要半分钟到一分钟才能开始使用
Hive面试准备
Hive架构原理
Hive的数据模型及各模块的应用场景
Hive支持的文件格式和压缩格式及各自特点
Hive内外表的区分方法及内外部差异
Hive视图如何创建、特点及应用场景
Hive常用命令及作用
Hive常用的10个系统函数及作用
简述UDF/UDAF/UDTF是什么,各自解决问题及应用场景
Hive设置配置参数的方法,列举8个常用配置
Hive数据倾斜的原因及主要解决方法
Hive优化策略
向Hive中传入变量的方式
Hive动态分区
Hive手写SQL案例
Hive分析窗口函数
以上是关于Hive架构简述及工作原理的主要内容,如果未能解决你的问题,请参考以下文章