HIVE:1_简介

什么是HIVE

Hive 是一个基于 Hadoop 文件系统之上的数据仓库架构。它为数据仓库的管理提供了许多功能:数据 ETL (抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。同时 Hive 还定义了类 SQL的语言 – Hive QL. Hive QL 允许用户进行和 SQL 相似的操作,它可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能。还允许开发人员方便地使用 Mapper 和 Reducer 操作,可以将 SQL 语句转换为 MapReduce 任务运行,这对 MapReduce 框架来说是一个强有力的支持。

HIVE体系结构



1. 基本组成:
- 用户接口,包括 CLI, JDBC/ODBC, WebUI
- 元数据存储,通常是存储在关系数据库如 MySQL, Derby 中
- 解释器、编译器、优化器、执行器
- Hadoop, 用 HDFS 进行存储,利用 MapReduce 进行计算

  1. 与关系数据库的区别:
    1. Hive 使用的是 Hadoop 的HDFS(Hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统;
    2. Hive 使用的计算模型是 MapReduce,而关系数据库则是自己设计的计算模型
    3. 关系数据库都是为实时查询的业务进行设计的,而 Hive 则是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致 Hive 的应用场景和关系数据库有很大的不同;
    4. Hive 很容易扩展自己的存储能力和计算能力,这个是继承 Hadoop 的,而关系数据库在这个方面要差很多。

HIVE应用场景

  • HIVE 不适合在大规模数据集上实现低延迟快速查询,比如联机事务处理(OLTP)
  • 适用于大数据集的批处理作业,比如:日志分析

HIVE数据结构

  • 表(Table):类似于数据库中的表
  • 外部表(External Table):指向已经在HDFS中存储的数据,也可以创建分区
  • 分区(Partition):Hive 中的每个分区都对应数据库中相应分区列的一个索引,但是其对分区的组织方式和传统关系数据库不同。
  • 桶(Bucket):桶在指定列进行 Hash 计算时,会根据哈希值切分数据,使每个桶对应一个文件。

元数据存储

由于 Hive 的元数据可能要面临不断地更新、修改和读取操作,所以它显然不适合使用 Hadoop 文件系统进行存储。目前 Hive 把元数据存储在 RDBMS 中,比如存储在 MySQL, Derby 中。这点我们在上面介绍的 Hive 的体系结构图中,也可以看出。_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值