理解Hive 不同组件的功能
Hive功能
通过将SQL转换成MR、Spark等任务,来计算HDFS中数据的工具。
Hive是基于Hadoop之上的数仓工具。通过HDFS存储真实的数据,通过YARN运行计算任务(MR、Spark等可以依赖YARN)。
那么我们简单分析Hive需要具备的能力:
- 对SQL编译、抽象
- 将SQL转换成计算任务并执行
- 对HDFS中的数据进行格式定义
- 管理HDFS上数据的读写(哪些能读、哪些能写)
所以Hive需要能将SQL进行抽象,将其转换成在MR、Spark运行的任务,并执行这些任务。
在HDFS中存储数据,格式有很多种,但是为了能够支持以 SQL的方式读写,那么需要能够对这些数据进行schema定义。
HDFS上的数据很多,那么Hive不能随意的读取其中的数据,那么需要定义能够读取数据的位置。
再进行总结Hive需要包含元数据管理(metastore)和 解析SQL并执行计算(Drive)。
元数据管理使用服务metastore,其底层可以是关系型数据库,比如MySQL等。
Hive所有元数据管理都是基于metastore进行操作。
通过metastore屏蔽了对于数据的直接操作,让元数据管理变的可靠、稳定。
HCatalog服务是用于管理metastore的对外服务。第三方的接口处理或者管理metastore可以通过它。所以metastore可以理解为对内管理Hive元数据的服务。
解析SQL并执行计算就需要通过HiveCLI与HiveServer2。
HiveCLI可以理解为重客户端。他提供本地编译SQL,并向YARN提交任务的功能。它也能直接与metastore进行交互。
HiveServer2也能提供HiveCLI的功能,但是他还能对外提供服务,服务是以thrift的方式提供的。客户可以通过jdbc、odbc等方式连接HiveServer2,将任务提交给HiveServer2后,他再于metastore、YARN交互执行相关的指令。
beeline是一个轻客户端,他可以通过jdbc的方式连接HiveServer2,并将任务提交给HiveServer2,它也支持强大的权限管理等功能。
理解Hive 不同组件的功能的更多相关文章
- 我所理解的Android组件化之通信机制
之前写过一篇关于Android组件化的文章,<Android组件化框架设计与实践>,之前没看过的小伙伴可以先点击阅读.那篇文章是从实战中进行总结得来,是公司的一个真实项目进行组件化架构改造 ...
- 华为云计算IE面试笔记-FusionSphere Openstack有哪些关键组件,各组件主要功能是什么?三种存储接入组件的差异有哪些?
1. Nova:在OpenStack环境中提供计算服务,负责计算实例(VM,云主机)生命周期的管理,包括生成.调度和回收.Nova不负责计算实例的告警上报(FC管). 2. Cinder:为计算实例提 ...
- openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署
OpenStack Kilo版本发布 20英文文档OpenStack Kilo版本文档汇总:各个操作系统安装部署.配置文档.用户指南等文档 Kilo版部署 openstack[Kilo]入门 [准备篇 ...
- 日历视图(CalendarView)组件的功能和用法
日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触摸来滚动日历.如果希望监控该组件的日历改变,可调用CalendarView的setOnDateChangeLi ...
- 详解Swing中JTree组件的功能
JTree组件是另外一个复杂组件,它不像 JTable 那样难用,但是也不像 JList 那么容易.使用 JTree 时麻烦的部分是它要求的数据模型. JTree组件的功能来自树的概念,树有分支和叶子 ...
- VMware vSphere 组件和功能
https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.introduction.doc_50%2FGUID- ...
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点( FROM IBM)
Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点 菜单是各种软件及开发平台会提供的必备功能,Eclipse 也不例外,提供了丰富的菜单,包括主菜单(Main Menu),视图 / ...
- 仿照admin的stark自定义组件的功能实现
仿照admin的stark自定义组件的功能实现:其中最主要的就是增删改查的实现 1.查:首先页面中显示表头和数据,都是动态的,而不是写死的. (1) 先看表头和表单数据:这个是查看的视图函数,但是为了 ...
- Hive初步认识,理解Hive(一)
Hive初步认识,理解Hive(一) 用了有一段时间的Hive了,之前一直以为hive是个数据库,类似Mysql.Oracle等数据库一样,其实不然. Hive是实现Hadoop 的MapReduce ...
- Vue日历组件的功能
本来呢,开开心心的写完了这个功能,然后发现elemeng更新了,增加了日历组件这个功能 我的内心机器奔溃,但是,element的日历组件太简单了,我感觉还是手撸一个吧,毕竟也不是很难 实现了显示农历, ...
随机推荐
- 前端解决Long类型精度丢失的问题
问题 数据库数据: 前端得到的数据: 出现了Long类型的数据出现精度丢失问题! 原因 JS中Long最大值:9007199254740992 JAVA中Long最大值:922337203685477 ...
- CSS & JS Effect – 用 wheel 模拟 scroll
前言 在 用 JavaScript 实现 position sticky 文章中,我提到了用 wheel 来模拟 scroll 效果. 这篇来说说具体怎么实现,挺简单的哦. Preparation t ...
- CSS – Design System
介绍 这篇 Tailwind CSS 的教程:Translating a Custom Design System to Tailwind CSS 充分的体现了什么是 Design System. 设 ...
- SQL Server CTE (Common Table Expression) 公用表表达式
参考: Sql - CTE公用表表达式和With用法总结 YouTube – SQL WITH Clause | How to write SQL Queries using WITH Clause ...
- 如何基于Java解析国密数字证书
一.说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色.国密算法,作为我国自主研发的加密算法标准,其应用也愈发广泛.然而,在Java环境中解析使用国密算法的数字证书时 ...
- 这10种分布式ID,太绝了!
前言 分布式ID,在我们日常的开发中,其实使用的挺多的. 有很多业务场景在用,比如: 分布式链路系统的trace_id 单表中的主键 Redis中分布式锁的key 分库分表后表的id 今天跟大家一起聊 ...
- Vue——前端框架
Vue Vue 快速入门 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- SQL limit字句
limit用法介绍 limit子句可以返回检索查询行的某一连续的部分 用法介绍: SELECT column_list FROM table1 ORDER BY column_list LIMIT r ...
- golang的类型转换
今天我们来说说一个大家每天都在做但很少深入思考的操作--类型转换. 本文索引 一行奇怪的代码 go的类型转换 数值类型之间互相转换 unsafe相关的转换 字符串到byte和rune切片的转换 sli ...
- 【PyTorch】state_dict详解
这篇博客来自csdn,完全用于学习. Introduce 在pytorch中,torch.nn.Module模块中的state_dict变量存放训练过程中需要学习的权重和偏执系数,state_dict ...