大数据框架之Hive:第1章 Hive入门

news2024/11/17 1:54:31

1.1 什么是Hive

1)Hive简介

Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

那为什么会有Hive呢?它是为了解决什么问题而诞生的呢?

下面通过一个案例,来快速了解一下Hive。

例如:需求,统计单词出现个数。

(1)在Hadoop课程中我们用MapReduce程序实现的,当时需要写Mapper、Reducer和Driver三个类,并实现对应逻辑,相对繁琐。

test表
id列

atguigu
atguigu
ss
ss
jiao
banzhang
xue
hadoop

(2)如果通过Hive SQL实现,一行就搞定了,简单方便,容易理解。

select count(*) from test group by id;

2)Hive本质

Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序

(1)Hive中每张表的数据存储在HDFS

(2)Hive分析数据底层的实现是MapReduce(也可配置为Spark或者Tez)

(3)执行程序运行在Yarn上

1.2 Hive架构原理

Untitled

1)用户接口:Client

CLI(command-line interface)、JDBC/ODBC。

说明:JDBC和ODBC的区别。

(1)JDBC的移植性比ODBC好;(通常情况下,安装完ODBC驱动程序之后,还需要经过确定的配置才能够应用。而不相同的配置在不相同数据库服务器之间不能够通用。所以,安装一次就需要再配置一次。JDBC只需要选取适当的JDBC数据库驱动程序,就不需要额外的配置。在安装过程中,JDBC数据库驱动程序会自己完成有关的配置。)

(2)两者使用的语言不同,JDBC在Java编程时使用,ODBC一般在C/C++编程时使用。

2)元数据:Metastore

元数据包括:数据库(默认是default)、表名、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。

默认存储在自带的derby数据库中,由于derby数据库只支持单客户端访问,生产环境中为了多人开发,推荐使用MySQL存储Metastore。

3)驱动器:Driver

(1)解析器(SQLParser):将SQL字符串转换成抽象语法树(AST)

Untitled

(2)语义分析(Semantic Analyzer):将AST进一步划分为QueryBlock

(3)逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划

(4)逻辑优化器(Logical Optimizer):对逻辑计划进行优化

(5)物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划

(6)物理优化器(Physical Optimizer):对物理计划进行优化

Untitled

(7)执行器(Execution):执行该计划,得到查询结果并返回给客户端

4)Hadoop

使用HDFS进行存储,可以选择MapReduce/Tez/Spark进行计算。

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

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

相关文章

性能优化|记一次线上OOM问题处理

概述最近线上监控发现 OOM 涨幅较大,因此去尝试定位和修复这个问题,在修复了一些内存泄漏和大对象占用问题后, OOM 依旧未达到正常标准,在这些新上报的 hprof 文件中,发现几乎所有 case 中都有个叫 FinalizerReference 的对象&…

集合体系概述以及Collection集合常用API

一. 集合 集合与数组类似,都是一种容器。集合是Java中存储对象数据的一种容器。集合也被称为对象容器。 数组的特点 集合的特点 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。集合更像气球,可大可小。集合非常适合…

python与pycharm从零安装

python(解释器)下载地址:Welcome to Python.orgpycharm(编译器)下载地址:PyCharm: the Python IDE for Professional Developers by JetBrains一、python的下载与安装到官网后根据步骤下载安装包后&#xf…

xgboost:分割查找:Weighted Quantile Sketch

Weighted Quantile Sketch 专门处理流式和分布式加权数据集的一种分桶的方法 近似算法的一个重要步骤是提出候选分裂点。通常使用特征的百分位数来使候选数据均匀分布。形式上,设Dk(x1k,h1),(x2k,h2)⋅⋅⋅(xnk,hn)D_k {(x_{1k}, h_1),(x_…

Redis持久化:RDB、AOF

Redis持久化一. RDB(1) save(2) bgsave(3) 总结二. AOF(1) 重写优化(2) RDB和AOF的区别引入:Redis用内存存储数据,有数据丢失的问题; 一. RDB RDB(Redis Database Bcakup file)即Redis数据备份文件,或Red…

如何用 Python采集 <豆某yin片>并作词云图分析 ?

嗨害大家好鸭!我是小熊猫~ 总有那么一句银幕台词能打动人心 总有那么一幕名导名作念念不忘 不知道大家有多久没有放松一下了呢? 本次就来给大家采集一下某瓣电影并做词云分析 康康哪一部才是大家心中的经典呢? 最近又有哪一部可能会成为…

拉链表详解

目录 一、拉链表概念 二、拉链表对应的业务需求 三、代码实现 3.1 数据初始化: 3.2 创建ods层增量表: 3.3 创建dwd层拉链表 3.4 数据更新 ,将数据日期为2023-3-4的日期添加到拉链表中 3.4.1 先追加数据到ods层表 3.4.2 更新dwd层表数据 …

【SpringCloud】SpringCloud详解之Ribbon实战

目录前言SpringCloud Ribbon 负载均衡一需求二.RestTemplate远程调用配置负载均衡(order服务内修改)三.Ribbon实现负载均衡的原理四.Ribbon负载均衡策略1.负载均衡种类2.配置负载均衡(order服务中配置)五.Ribbon的饥饿加载配置(在order服务配置)前言 微服务中比如用户服务部署…

sklearn使用入门

文章目录1.机器学习1.1 机器学习简介1.2 有监督学习(supervised learning)1.3 无监督学习(unsupervised learning)1.4 半监督学习2. 机器学习工具SKlearn2.1 sklearn2.2 sklearn常用模块2.2.1 分类2.2.2 回归2.2.3 聚类2.2.4 降维2.2.5 模型选择2.2.6 数据预处理2.3 sklearn使用…

Android startActivityForResult()废弃了,代替方案案例

安卓项目compileSdk为32,在使用startActivityForResult()方法时发现Android studio提示此方法已经废弃了。 目前的代替方案案例。 // 确保 app 的 build.gradle中已经引入了androidx.appcompat:appcompat dependencies {implementation androidx.appcompat:appcomp…

操作系统之进程管理---每天一点点(春招加油呀)--知识点回顾(自问自答版本总结)

1.什么是进程?什么是线程?进程和线程的区别? 进程:资源分配和管理的基本单位 线程:程序执行的最小单位。 区别: 地址空间: 同一进程的所有线程共享本进程的地址空间,而不同的进程之间…

仓库拣货标签电子价格标签办公电子标牌

数字货架标签尺寸:2.13英寸、2.9英寸、4.2英寸、7.5英寸、10.2英寸技术:2.4G MHz无线通信技术,电子墨水显示。刷新20,000个标签/1小时/AP。3-5年的寿命,电池可以快速更换。ESL管理系统工作原理:实时显示最新…

【Maven】P3 依赖管理

依赖管理依赖配置依赖传送依赖具有传递性直接依赖与间接依赖依赖冲突可选依赖排除依赖依赖范围依赖配置 依赖指的是当前项目所需要的jar包&#xff0c;在 pom.xml 中可以看到 <!--设置当前项目所依赖的所有jar包--> <dependencies><!--设置一个具体的依赖jar-…

【CVPR2022】Class Re-Activation Maps for Weakly-Supervised Semantic Segmentation

论文标题&#xff1a;Class Re-Activation Maps for Weakly-Supervised Semantic Segmentation收录&#xff1a;CVPR 2022paper: https://arxiv.org/abs/2203.00962code: https://github.com/zhaozhengChen/ReCAM解读&#xff1a;https://zhuanlan.zhihu.com/p/478133151https:…

mx-font

Abstract 短镜头字体生成(FFG)方法必须满足两个目标:生成的图像既要保留目标字符的底层全局结构,又要呈现多样化的局部参考风格。现有的FFG方法旨在通过提取通用表示样式或提取多个组件样式表示来分离内容和样式。然而,以往的方法要么无法捕捉不同的本地风格,要么无法推广到…

初识系统移植

系统移植简单来说就是将准备好的内核&#xff08;OS&#xff09;移植到一台主机或者开发板中&#xff0c;类似于器官移植&#xff0c;将准备好的器官移植到人体中。 为什么需要系统移植&#xff1f; 没有内核的情况下&#xff0c;上层如果要控制硬件只能将C语言代码先编译成二…

【C++】栈和队列(stackqueue)介绍,实现,oj

&#x1f345;一文包教会&#xff0c;不再赘述栈最基本的结构和性质&#xff08;栈的基本介绍在这里&#xff09; &#xff08;队列基本介绍和实现&#xff09;,博主主页还有很多栈和队列oj题哦~ 目录 ☃️1.stack_list &#x1f41d;1.1 介绍 &#x1f41d;1.2 stack和list实…

人工智能|HCIA-AI V3.0(一)——人工智能概览

文章目录一 AI、机器学习、深度学习的关系二 AI的三个方面的应用2.1 计算机视觉2.2 语音处理2.3 自然语言处理三、争议四、未来展望一 AI、机器学习、深度学习的关系 人工智能:是研究、开发用于模拟、延伸和扩展人的智能的理论、方法及应用系统的一- 门新的技术科学。 机器学习…

【蓝桥杯集训15】求最短路存在负权边——spaf算法(3 / 4)

——SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称 单源最短路&#xff0c;且图中没有负环就可以用spfa 目录 spaf求最短路模板 852. spfa判断负环 341. 最优贸易 - spfa 双向建图 3305. 作物杂交 - spaf求最短路模板 只有当一个点的前驱结点更新了&#xff0c;…

多线程共享数据结构的无锁释放

目录背景问题共享结构的无锁释放对比ref-cntrcuepoch-based reclamhazard pointer: 冒险指针结构原理正确性保证范例参考背景 多线程共享一个数据结构。 共享数据结构&#xff0c;可以做到节约内存。 但是多线程共享&#xff0c;可能会有问题&#xff0c;比如同步的问题。 问…