大数据学习(2)Hadoop-分布式资源计算hive(1)

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞


1 .1 什么是Hive

1 ) H ive 简介

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

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

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

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

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

test表

i d 列

java 复制代码
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架构原理

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)

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

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

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

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

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

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

4 ) Hadoop

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

相关推荐
Nerd(BUG版)24 分钟前
KMP学习day4--Kotlin空安全与泛型
学习·安全·kotlin
東隅已逝,桑榆非晚29 分钟前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
yuanyuan3341 小时前
2026枣庄带检测报告伸缩门品牌测评|本地服务
大数据·数据库·人工智能·伸缩门
wdyan2971 小时前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
叼烟扛炮2 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮2 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
skywalk81633 小时前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive
玖米GEO运营王总监3 小时前
2026年账号矩阵协同效应怎么量化:三个指标与公式结构
java·大数据·数据库
Rabitebla4 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
叼烟扛炮4 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain