HiveServer2 和 HiveMetastore 梳理

news2024/11/15 20:11:24

本文重新回顾一下Hive的两个核心服务:HiveServer2 和 HiveMetastore(HMS)。很多人会简单地把HiveServer2当成Hive的JDBC/ODBC服务,不启动HiveServer2服务,就没有10000端口,JDBC/ODBC客户端就连接不上Hive。从使用者的角度理解这就够了。如果要deep dive一下,HiveServer2的功能不止这些。我们知道:如果把Hive整体当做一个黑盒,则它的输入是用户提交的sql,它的输出是提交后的MR作业,用一句概括Hive的功能就是:将sql语句“转译”成MR作业,这实际上也正是HiveServer2的主要工作内容。更加细致一点的表述是:一般客户端会使用Hive的JDBC驱动连接到Hiveserver2(Hiveserver2通过Thrift RPC框架实现的JDBC服务端),然后将SQL语句提交给Hiveserver2,Hiveserver2会进行SQL的解析编译优化,在这个过程中Hiveserver2需要跟HiveMetastore服务通信以得到数据库和数据表的元数据,HiveMetastore服务会将数据库的元数据信息存储到数据库中。最终Hiveserver2将SQL编译为MapReduce作业运行在MapReduce/Tez/Spark分布式计算引擎上。HiveMetastore和HiveServer2都是独立运行的服务,对外提供基于Thrift协议的服务接口。

以下是不同平台和视角绘制的Hive架构图,基本都是一致的:

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

上述4张图描述的已经非常清晰了,我们再详细介绍一下Hive Driver。从这些图上可知:似乎Hiveserver2的主要工作都由这个Driver包揽了,尤其是编译,优化和执行都是由Driver主导和协调的。实际上,这里的Driver是Hive中的一个重要的类:org.apache.hadoop.hive.ql.Driver,也就是说这已经进入到了Hive的内部设计细节了,设计者设计各种重要的业务实体,抽象各种概念,将不同的职责委派给合适的类,所以回到话题本身,Driver类确实是Hiveserver2中的一个核心的类,组织与串联了SQL提交后到转译为MR作业的关键操作,但是从大的架构层面上, 我们可以认为这是HiveServer2的职责和工作内容。

接下来,我们分别看一下HiveServer2和HiveMetastore的进程和端口情况:

  • HiveServer2的进程和端口

在这里插入图片描述

  • HiveMetastore的进程和端口

不同于,HiveServer2,HiveMetastore的进程有一点隐秘,使用jps罗列进程时是看不到Metastore相关进程的,改使用ps aux | grep metastore可以查到对应进程!之所以jps中看不到是因为metastore服务的主类是org.apache.hadoop.util.RunJar,使用jps时,仅仅显示为RunJar,所以很容易被忽视。

在这里插入图片描述

Hive Metastore占用9083端口对外提供服务,这个9083正是在hive-site.xml中的:

  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://xxx.xxx.xxx.xxx:9083</value>
  </property>

参考:

https://www.interviewbit.com/blog/hive-architecture/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见的数据通信方式有哪些?

数据通信方式指通信双方在信号发送、传输和接收这3个环节对信号的处理方式&#xff0c;下面将对不同的信号处理方式进行讲解。 单工、半双工与全双工通信 按信道上信号的传输方向与时间的关系&#xff0c;通信方式可分为单工通信、半双工通信与全双工通信。 (1) 单工通信 单…

Minecraft 1.19.2 Forge模组开发 09.动画效果方块

我们本次尝试制作一个具有动画效果的方块 效果演示效果演示效果演示 首先&#xff0c;请确保你的开发包中引入了geckolib依赖&#xff0c;相关教程请参考:Minecraft 1.19.2 Forge模组开发 03.动画生物实体 1.首先我们要使用geckolib制作一个物品和对应的动画&#xff1a; 在…

TDOA 定位技术和实际应用简介

介绍了TDOA&#xff08;Time difference of Arrival&#xff09;的基本原理&#xff0c;列举了TDOA 定位的优势&#xff0c;并且通过实例分析其在实际应用中的有效性&#xff0c;结合实验数据分析了影响TDOA 的因素。本文提出TDOA 是一种简单高效的定位方式&#xff0c;可以被广…

js原型与原型链完整图解

首先要知道&#xff1a; 1、所有对象&#xff08;除null&#xff09;都有一个__proto__属性指向构造函数的原型对象 2、所有对象&#xff08;除null&#xff09;都有一个constructor属性指向构造函数&#xff08;函数也是对象&#xff09; 已知&#xff1a;有一个构造函数Fn…

如何在交付运维过程中建立风险底线意识,提前识别风险,避免项目延期?

大家好&#xff0c;我是小赛。又到了每周的【项目管理案例】分享栏目了。本期案例来自于希赛PM创造营项目经理们的分享&#xff1a;项目延期是每位项目经理或多或少都会遇到的工作难题&#xff0c;本期我们一起来探讨一下&#xff1a;如何在交付运维过程中建立风险底线意识&…

【檀越剑指大厂—SpringMVC】SpringMVC篇

一.基础概念 1.什么是 MVC MVC 是模型(Model)、视图(View)、控制器(Controller)的简写&#xff0c;是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC 主要作用是降低了视图与业务逻辑间的双向偶合。MVC 不是一种设计模式&#xff0c;MVC 是一种架构模…

APS排产帮助面板制造厂商进行计划调整

液晶面板是决定液晶显示器亮度、对比度、色彩、可视角度的材料&#xff0c;液晶面板的价格走势会直接影响到液晶显示器的价格&#xff0c;液晶面板作为电视、显示器等产品的核心组成部件&#xff0c;一般占到成本的60%以上。在液晶面板下行周期中&#xff0c;面板大厂们日子更不…

设计数据库中常见的规范

文章目录命名规范合适的字段类型主键设计要合理合适的字段长度优先考虑逻辑删除&#xff0c;而不是物理删除每个表都需要添加一些通用字段表的字段不要太多尽可能使用not null 定义字段评估哪块要加索引避免使用MySQL保留字不要外键关联&#xff0c;一般用代码维护一般都选择IN…

外包四年太差劲,幡然醒悟要跳槽

前几天有个读者过来说&#xff0c;“二哥&#xff0c;外包干了四年&#xff0c;感觉和外界差距有点大&#xff0c;现在被动醒悟&#xff0c;希望你能帮我制定一下学习路线。” 那二哥这么负责任&#xff0c;必须得承担起这份职责啊&#xff01;于是我就让读者整理了一份 1.0 版…

RL - 简单介绍

目录 一、两种机器学习类型 1.1 预测型机器学习 1.2 决策型机器学习 二、强化学习的定义 三、强化学习的交互过程 四、强化学习系统要素 五、强化学习智能体分类 一、两种机器学习类型 1.1 预测型机器学习 1有监督学习: 基于数据的一部分输入&#xff0c;去预测相关输…

STL之stack、queue、priority_queue模拟实现

容器适配器 容器适配器&#xff0c;简言之是可以用不同容器来快速实现自己的工具。像stack、queue、priority_queue都是容器适配器。 stack模拟实现 主要接口定义如下&#xff1a; namespace lz {template<class T, class Container deque<T>>class stack{publ…

【论文阅读总结】inception v2_v3总结

重新思考计算机视觉的Inception架构1.摘要2.简介2.1 以往模型问题2.2 问题缓解2.3 问题解决出现的问题2.4 有效的一般原则和优化思想3.一般设计原则3.1 设计原则1【避免代表性瓶颈(不能过度降维)】3.2 设计原则2【特征越多&#xff0c;收敛越快】3.3 设计原则3【卷积之前使用1*…

【java】opencv + Tesseract(tess4j) 实现图片处理验证码识别

1.opencv for java 环境搭建和测试 到OpenCV官网下载你需要的版本&#xff0c;运行安装&#xff0c;记住安装目录。打开上一步安装的位置&#xff0c;依次打开如下图位置&#xff0c;复制opencv-{version}.jar、x64包下对应的dll到项目里&#xff0c;放在同级 在maven里添加o…

JVS低代码首页功能介绍

首页介绍 首页操作演示 系统logo 系统logo是每个系统的名称标识&#xff0c;点击系统logo可以返回到首页&#xff0c;这里的系统logo是支持配置化的。 应用快捷导航 应用快捷导航是将登录用户有权限使用的应用展示出来&#xff0c;鼠标点击后&#xff0c;系统展示可见的应用于…

k8s-Pod的生命周期和调度

目录 主要运行周期 1 Pod创建和终止 2 初始化容器 3 钩子函数 4 容器探测 5 重启策略 Pod调度 1 定向调度 2 亲和性调度 3 污点和容忍 主要运行周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期&#xff0c;它主要包含下面的过程&#xff1a; pod创…

vscode python远程开发最佳实践

文章目录环境插件踩坑python类型提示不起作用配置PYTHONPATH前言 最近因为remote-ssh从pycharm转到vscode开发, 再删掉pycharm强制使用vscode摸索了一周熟练之后发现vscode其实使用起来也很爽&#xff0c;一些踩坑和最佳实践方案汇总 环境 插件 remote-sshpythonpylance(微软…

Compose 动画艺术探索之 Easing

本篇文章是此专栏的第六篇文章&#xff0c;前几篇文章大概将 Compose 中的动画都简单过了一遍&#xff0c;如果想阅读前几篇文章的话可以点击下方链接&#xff1a; Compose 动画艺术探索之瞅下 Compose 的动画Compose 动画艺术探索之可见性动画Compose 动画艺术探索之属性动画…

Mobtech 秒验应用介绍

一、传统APP手机注册登录验证的弊端 1、 注册过程输入的信息过多&#xff0c;耗费时间长。用户体验感较差。 2、 传统手机绑定需要通过验证码验证手机真实性&#xff0c;容易被批量注册。 3、 如果手机APP多&#xff0c;每个APP都注册&#xff0c;使用的用户名密码多&#x…

高薪资的IT行业,我们该不该转行

今年互联网各大厂秋招基本结束&#xff0c;校招薪资已经出炉了。可以从上图中看到&#xff0c;今年薪资仍然存在倒挂&#xff08;新员工工资高过老员工&#xff09;现象。各大厂人均 30w 的薪资在其它专业是难以想象的。大家无需置疑上述薪资的可靠性。作为今年的校招生&#x…

视频剪辑教程,批量将视频裁切为1:1比例的尺寸

视频太多&#xff0c;如何批量剪辑&#xff0c;比如将视频裁切为1:1的比例呢&#xff1f;那么今天小编给大家带来一个超简单的方法&#xff0c;可以同时将多段16:9的视频裁切为1:1的视频。 所需工具 多段16:9&#xff08;即1280*720&#xff09;的视频素材 操作步骤 第一步&…