一篇文章搞懂 Hive 的系统架构
前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
Hive是底层封装了 Hadoop 的数据仓库处理工具,它运行在 Hadoop基础上,其系统架构组成主要包含4个部分,分别是用户接口、跨语言服务、底层的驱动引擎以及元数据存储系统。
下面针对 Hive 系统架构的组成部分进行讲解。
1. 用户接口
主要分为 3 个,分别是 CLI 、 JDBC / ODBC 和 WebUI 。
其中, CLI 即 Shell 终端命令行,它是最常用的方式。
JDBC / ODBC 是 Hive 的 Java 实现,与使用传统数据库 JDBC 的方式类似, WebUI 指的是通过测览器访问 Hive 。
2. 跨语言服务( Thrift Server )
Thrift 是 Facebook 开发的一个软件框架,可以用来进行可扩展且跨语言的服务。
Hive 集成了该服务,能让不同的编程语言调用 Hive 的接口。
关于 Thrift 的更多内容请参考我的这篇博客——Apache Thrift是什么?
3. 底层的驱动引擎(Driver)
主要包含解析器( SQL Parser ),编译器( Compiler ),优化器( Optimizer )和执行器( Executor )
它们用于完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成,生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行。
Hive 的底层计算引擎可选为:MapReduce,Spark,Tez
4. 元数据存储系统( Metastore )
Hive 中的元数据通常包含表名、列、分区及其相关属性,表数据所在目录的位置信息, Metastore 默认存在自带的 Derby 数据库中。
由于 Derby 数据库不适合多用户操作,并且数据存储目录不固定,不方便管理,因此,通常都将元数据存储在 MySQL 数据库。
一篇文章搞懂 Hive 的系统架构相关推荐
- 一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比
在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代, ...
- 一篇文章搞懂filebeat(ELK)
一篇文章搞懂filebeat(ELK) https://www.cnblogs.com/zsql/p/13137833.html 目录 一.filebeat是什么 1.1.filebeat和beats ...
- c++ 计算正弦的近似值_一篇文章搞懂正弦保真性
本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...
- 【一篇文章搞懂】什么是分布式锁?为什么要用分布式锁?看这篇文章准没错!
简介 HikariCP 是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,和 dr ...
- 一篇文章搞懂架构师的核心技能
" 这是架构师系列的第一篇:核心技能,希望这个系列能完全揭示架构师这个职位:我先从核心技能开始,后续还有架构师之路,架构实战等架构师系列文章. 本文作者 陈睿 优知学院创始人,前携程定制旅游 ...
- 一篇文章搞懂 Apache Kylin 4.x 的技术架构
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见1000个问题搞定大数据技 ...
- 一篇文章搞懂Java架构师的核心技能及薪资!
Java架构师一般的薪资是多少?高不高?一般来讲,Java架构师是一个比较全面的职位,它既需要学习Java开发工具.性能优化.源码分析.分布式架构.微服务架构和多线程并发编程等基础技术,又需要有组织能 ...
- 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发
学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...
- reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式
在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...
最新文章
- delphi开发回忆录——示例源码下载
- PMCAFF 八周年老友会倒计时 | 北京活动
- 【分析】2014移动互联网数据报告(终极版必收!)
- SpringAop对struts2的Action设置切面织入时报错java.lang.NoSuchMethodException
- kaggle上面的score以及ROC_AUC数值咋回事
- GPU Pro2 - 1.Terrain and Ocean Rendering with Hardware Tessellation
- android studio资源二进制,无法自动检测ADB二进制文件 – Android Studio
- python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...
- 吴恩达神经网络和深度学习-学习笔记-4-深度网络
- sql 查询id 逗号拼接_sql查询列进行STUFF()拼接 单引号 逗号_xml path excel
- 【win10】装机必备推荐软件,提升你的计算机使用效率!
- vSphere Esxi 7.0打包网卡驱动
- Unit firewalld.service could not be found
- 恒生电子2018秋招笔经面经(开发岗)
- 腾讯云TCA运维工程师认证题库及例题示范
- 《自然遗传学》:一个基因变异就能引发神经发育障碍
- 天庭云计算机键盘无法输入,Win7系统下无线键盘失灵无法输入的解决方法
- 蘑菇街收购锐鲨科技,志在押注国货新浪潮?
- vps php mail,TMail v5.2 – PHP多域名临时电子邮件系统
- 大数据面试3分钟自我介绍_大数据面试自我介绍技巧