Hive 知识点八股文记录 ——(一)特性

Hive通俗的特性

  • 结构化数据文件变为数据库表
  • sql查询功能
  • sql语句转化为MR运行
  • 建立在hadoop的数据仓库基础架构
  • 使用hadoop的HDFS存储文件
  • 实时性较差(应用于海量数据)
  • 存储、计算能力容易拓展(源于Hadoop)

支持这些特性的架构

CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor)
在这里插入图片描述

服务端

  1. Driver:包括了Complier、Optimizer和Executor。将Hive sql解析,编译,优化,生成执行计划
  2. Metastore:存储hive元数据(描述数据的数据,比如一行数据里面,单个数据的名字叫啥,类型是啥,注释是啥,以及表本身的框架) 解耦hive服务和metastore服务
  3. Thrift:可扩展且跨语言的服务的开发,hive集成服务支持不同编程语言调用hive的接口、

客户端

  1. CLI: 命令行接口
  2. Thrift客户端: hive架构的接口基于thrift客户端(如 JDBC, 面向java的连接; ODBC 开放数据连接)
  3. WEBGUI:网页访问Hive服务接口

Hive执行MR的过程

  1. User Interface用executeQuery接口,hql发送给Driver
  2. driver生成 session handle, 并发送给Compiler
  3. Compilermetastore获取元数据
  4. 元数据检查类型后,对为此调整分区,生成计划
  5. Compiler生成DAG,每个stage都可能涉及M/R job, 元数据操作, HDFS文件操作
  6. 每个M/R中,查询结果以临时文件方式放在HDFS中,临时文件由Execution Engine从HDFS读取,作为Driver返回内容

特点

  • Hive加载数据的时候不对数据检查(关系型是检查的,若加载数据不符合模式会拒绝执行,称之为写时模式),也不更改加载的数据文件,查询的时候检查数据格式(读时模式)
    • 写时模式加载过程中索引,数据会压缩,加载数据较慢。数据加载好后查询较快
    • 读时模式适用于数据非结构化,存储模式未知的情况
  • hive不支持对特定行的操作,只支持覆盖原数据和追加数据
  • hive不支持事务,索引
  • hive的更新操作为:原表数据转化后存在新表
  • hive支持和hbase集成,实现快速查询,但需要提供sql语法解析外壳
  • hive可认为是MR的包装

Spark通俗的特性

兼容hive

组件

  • SQLContext:封装spark关系型功能
  • DataFrame:分布式,命名列阻止的数据集合,可转化为RDD,支持已有的RDD、结构化数据文件、JSON数据集、Hive表、外部数据库创建DF

sql运行架构

  1. sql语句进行解析,判断出表达式,projection,datasource等(projection可以理解为select的列的集合)
  2. sql语句和数据字典(列,table, view)绑定。
  3. 选出最优的执行计划
  4. 按Operation datasource result次序执行(可以不读取物理表读取缓冲池返回结果)

Hive on MR 与 SparkSql区别

两者基本相同,但sql解析器不一样(spark做了较多优化)

Hivespark
场景离线,非实时实时要求高,速度快的场景
速度快,比传统MR块10-100倍

表的元数据存储在什么地方

  1. 内存数据库derby,快,轻量,不稳定
  2. MySql数据库 持久化好

建表方式

  1. 直接建表
  2. 查询建表(通过select得到的结果生成新的表)
  3. like建表(无数据,结构一致)

表的分类

内部表,外部表

默认创建内部表,创建外部表,需要加上external关键字修饰,还可通过location指定Hive仓库的路径

区别

内部表外部表
drop删除元数据和文件只删除元数据
load数据移动到指定路径不移动到数据仓库目录下

优先使用外部表

  1. 不删除数据,方便数据恢复
  2. 不加载数据到hive,减少数据传输
  3. 不对HDFS数据修改

数据处理都用hql完成的话,选择内部表

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

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

相关文章

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能: 以最新的平台版本为目标! RAD Studio 12 提供对 iOS 17(仅适用于 Delphi)、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

广州华锐互动:VR互动实训内容编辑器助力教育创新升级

随着科技的飞速发展,教育领域也正在经历一场深刻的变革。其中,虚拟现实(VR)技术为教学活动提供了前所未有的便利和可能性。在诸多的VR应用中,VR互动实训内容编辑器无疑是最具潜力和创新性的一种。广州华锐互动开发的这款编辑器以其独特的功能…

百度智能云正式上线Python SDK版本并全面开源!

文章目录 1. SDK的优势2. 千帆SDK:快速落地LLM应用3. 如何快速上手千帆SDK3.1 SDK快速启动3.2 SDK进阶指引3.3 通过Langchain接入千帆SDK 4. 开源社区 百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线Python SDK&#…

直播会议一体机安卓主板_5G智能会议一体机双屏异显设计

5G直播会议一体机主板是专门为支持音视频输入输出而设计的,内置有安卓13系统,可兼容多种直播和会议软件。该产品可广泛应用于智能会议一体机、便携式直播设备、录播导播、无人机直播以及视频传输等多个领域。 这款主板采用了国产6纳米旗舰芯片紫光展锐T8…

虚幻C++基础 day4

虚幻中的UI 虚幻中的比较常用的UI:Widget Blueprint又称UMG虚幻中的两种布局: 网格布局锚布局 创建Widget Blueprint 网格布局 有点类似Qt中的网格布局,将UI面板进行行列切分Horizontal Box:水平分布Vertical Box:…

机器学习---多分类SVM、支持向量机分类

1. 多分类SVM 1.1 基本思想 Grammer-singer多分类支持向量机的出发点是直接用超平面把样本空间划分成M个区域,其 中每个区域对应一个类别的输入。如下例,用从原点出发的M条射线把平面分成M个区域,下图画 出了M3的情形: 1.2 问题…

【Spring之底层核心架构概念解析】

文章目录 一、BeanDefinition二、BeanDefinitionReader2.1、AnnotatedBeanDefinitionReader2.2、XmlBeanDefinitionReader 五、ClassPathBeanDefinitionScanner六、BeanFactory七、ApplicationContext7.1、AnnotationConfigApplicationContext7.2、ClassPathXmlApplicationCont…

2023年11月PHP测试覆盖率解决方案

【题记:最近进行了ExcelBDD PHP版的开发,查阅了大量资料,发现PHP测试覆盖率解决方案存在不同的历史版本,让我花费了蛮多时间,为了避免后人浪费时间,整理本文,而且网上没有给出Azure DevOps里面P…

jQuery HTML/CSS 参考文档

jQuery HTML/CSS 参考文档 文章目录 应用样式 示例属性方法示例 jQuery HTML/CSS 参考文档 应用样式 addClass( classes ) 方法可用于将定义好的样式表应用于所有匹配的元素上。可以通过空格分隔指定多个类。 示例 以下是一个简单示例&#xff0c;设置了para标签 <p&g…

超详细!Linux内核内存规整详解

1.前言 伙伴系统作为内核最基础的物理页内存分配器&#xff0c;具有高效、实现逻辑简介等优点&#xff0c;其原理页也尽可能降低内存外部碎片产生&#xff0c;但依然无法杜绝碎片问题。外部碎片带来的最大影响就是内存足够&#xff0c;但是却无法满足内存分配需求&#xff0c;如…

docker创建并访问本地前端

docker创建并访问本地前端&#xff0c;直接上命令&#xff1a; 安装nginx镜像&#xff1a; docker pull nginx 查看已安装的nginx&#xff1a; docker images 创建DockerFile文件&#xff0c;直接在当前文件夹种创建 touch Dockerfile 在Dockerfile写入内容&#xff1a; F…

【仿真动画】人机协作机器人自动化产线仿真动画欣赏

人机协作机器人自动化产线仿真动画 动画部分思维导图 机器人自动化产线仿真动画是利用三维动画技术对机器人自动化产线进行仿真模拟&#xff0c;以直观、形象的方式展示产线的运行情况。它具有以下作用&#xff1a; 提高沟通效率 机器人自动化产线的设计、实施和维护涉及多个部…

Kotlin库实现多线程爬取数据

由于字数限制&#xff0c;以下是一个简化版的爬虫程序示例&#xff0c;使用了Kotlin的网络库kotlinx.coroutines和kotlinx.html。这个程序会爬取一个简单的Python多线程跑数据的网页&#xff0c;并打印出结果。 import kotlinx.coroutines.* import kotlinx.html.* import java…

CSS3 用户界面、图片、按钮

一、CSS3用户界面&#xff1a; 在CSS3中&#xff0c;增加了一些新的用户界面特性来调整元素尺寸、框尺寸和外边框。CSS3用户界面属性&#xff1a;resize、box-sizing、outline-offset。 1、resize&#xff1a; resize属性指定一个元素是否应该由用户去调整大小。 <style…

amazon产品采集数据

导入需要的库&#xff1a;requests&#xff0c;BeautifulSoup&#xff0c;re&#xff0c;chardet requests用于发送HTTP请求&#xff1b;BeautifulSoup用于解析HTML&#xff1b;re用于正则表达式&#xff1b;chardet用于识别网页编码。 定义函数&#xff0c;接受URL参数&#…

美格智能5G RedCap模组顺利完成中国联通5G物联网OPENLAB开放实验室认证

近日&#xff0c;美格智能5G RedCap模组SRM813Q顺利通过中国联通5G物联网OPENLAB开放实验室端到端的测试验收&#xff0c;并获得OPENLAB实验室的认证证书。这标志着该模组产品各项性能均已符合RedCap商用标准&#xff0c;为5G RedCap规模商用奠定了坚实基础。 中国联通5G物联网…

8255 boot介绍及bring up经验分享

这篇文章会简单的介绍8255的启动流程&#xff0c;然后着重介绍8255在实际项目中新硬件上的bring up工作&#xff0c;可以给大家做些参考。 8255 boot介绍 下面这些信息来自文档&#xff1a;《QAM8255P IVI Boot and CoreBSP Architecture Technical Overview》 80-42847-11 R…

数据的使用、表关系的创建、Django框架的请求生命周期流程图

目录 一、数据的增删改查 1. 用户列表的展示 2. 修改数据的逻辑分析 3. 删除功能的分析 二、如何创建表关系 三、Django的请求生命周期流程图 一、数据的增删改查 1. 用户列表的展示 把数据表中得用户数据都给查询出来展示在页面上 查询数据 def userlist(request):&qu…

LeetCode 17. 电话号码的字母组合 中等

题目 - 点击直达 1. 17. 电话号码的字母组合 中等1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 3. 知识与收获 1. 17. 电话号码的字母组合 中等 1. 题目详情 1. 原题链接 LeetCode 17. 电话号码的字母组合 中等 2. 题目要…

竞赛 车道线检测(自动驾驶 机器视觉)

0 前言 无人驾驶技术是机器学习为主的一门前沿领域&#xff0c;在无人驾驶领域中机器学习的各种算法随处可见&#xff0c;今天学长给大家介绍无人驾驶技术中的车道线检测。 1 车道线检测 在无人驾驶领域每一个任务都是相当复杂&#xff0c;看上去无从下手。那么面对这样极其…