【Hive】2-Apache Hive概述、架构、组件、数据模型

Apache Hive概述

什么是Hive

  • Apache Hive是一款建立在Hladoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
  • Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群执行。
  • Hive由Facebook实现并开源。

为什么使用Hive

  • 使用Hadoop MapReduce直接处理数据所面临的问题
    • 人员学习成本太高需要掌握java语言
    • MapReduce实现复杂查询逻辑开发难度太大
  • 使用Hive处理数据的好处
    • 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
    • 避免直接写MapReduce,减少开发人员的学习成本
    • 支持自定义函数,功能扩展很方便
    • 背靠Hadoop,擅长存储分析海量数据集

Hive和Hadoop关系

  • 从功能来说,数据仓库软件,至少需要具备下述两种能力︰存储数据的能力、分析数据的能力
  • Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述两种能力,而是借助Hadoop。Hive利用HDFS存储数据,利用MapReduce查询分析数据
  • 这样突然发现Hive没啥用,不过是套壳Hladoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写HQL,Hive帮您转换成为MapReduce程序完成对数据的分析。

在这里插入图片描述

Hive的功能模拟

  • Hive能将数据文件映射成为一张表,这个映射是指什么?

    答:文件和表之间的对应关系

  • Hive软件本身到底承担了什么功能职责?

    答:SQL语法解析编译成为MapReduce

在这里插入图片描述

Apache Hive架构、组件

架构图

在这里插入图片描述

组件

  • 用户接口:包括CLI、JDBC/OOBC、WebGUI。其中,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。
  • 元数据存储:通常是存储在关系数据库如mysql/derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
  • Driver驱动程序,包括语法解析器、计划编译器、优化器、执行器:完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS 中,并在随后有执行引擎调用执行。
  • 执行引擎:Hive本身并不直接处理数据文件。而是通过执行引擎处理。当下Hive支持MapReduce、Tez、Spark三种执行引擎。

Apache Hive数据模型

Data Model概念

  • 数据模型∶用来描述数据、组织数据和对数据进行操作,是对现实世界数据特征的描述。
  • Hive的数据模型类似于RDBMS库表结构,此外还有自己特有模型。
  • Hive中的数据可以在粒度级别上分为三类∶
    • Table 表
    • Partition 分区
    • Bucket 分桶

在这里插入图片描述

DataBases 数据库

  • Hive作为一个数据仓库,在结构上积极向传统数据库看齐,也分数据库(Schema ),每个数据库下面有各
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杼蛘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值