Apache Hive 简介

Apache Hive 是Facebook开源的基于Hadoop的数据仓库工具,提供HQL查询,将SQL语句转化为MapReduce任务。Hive不支持记录级操作,适合海量离线数据统计分析,不适用于交互式查询。Hive与RDBMS不同,更适合数据仓库场景。其架构包括用户接口、Thrift Server、元数据存储、Driver等组件,数据存储在HDFS中,元数据通常存储在MySQL。Hive中的表分为内部表、外部表、分区表和Bucket表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Hive 简介

  1.1、什么是 Hive?

Hive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。Hive 的本质是将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS分布式存储系统的封装了 MapReduce 计算框架的工具,对存储在 HDFS 中的数据进行分析和管理。

Hive中最终的数据仍然存储在hdfs上,hive上建的表仅仅相当于对hdfs上的结构化数据进行映射管理,hive仅仅是一个管理数据的作用而不会存储数据。hive想要管理hdfs上的数据就必须要建立一个关联hive上的表和hdfs上的数据路径的关联关系,hive的元数据表中记录的就是hive中的表和hdfs的映射关系,以及hive表属性(内部表、外部表、视图)和字段信息(字段的类型和字段的顺序)等元数据,这些元数据必须依赖某个数据库进行存储,一般情况下这个元数据库采用的是关系型数据库,真实生产中一般使用mysql作为hive的元数据库,hive中内置的默认的元数据库是derby。在hive中元数据非常重要,元数据一旦丢失,整个hive中的库和表都会丢失!

  1.2 为什么需要使用 Hive?

直接使用 MapReduce 所面临的问题:人员学习成本太高,项目周期要求太短,MapReduce 实现复杂查询逻辑开发难度太大,为什么要使用 Hive?因为hive有更友好的接口,操作接口采用类 SQL 的语法,提供快速开发的能力和更低的学习成本,避免了写 MapReduce,减少开发人员的学习成本,具有更好的扩展性:可自由扩展集群规模而无需重启服务,还支持用户自定义函数(实际上还是hdfs的特点)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值