大二暑期第八周

本周并未学习什么知识,临近开学,外出游玩,准备开学事宜,看了一点hive

Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化

数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和

分析存储在Hadoop文件中的大型数据集。

Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。

Hive由Facebook实现并开源。

使用Hadoop MapReduce直接处理数据所面临的问题

人员学习成本太高 需要掌握java语言

MapReduce实现复杂查询逻辑开发难度太大

使用Hive处理数据的好处

操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)

避免直接写MapReduce,减少开发人员的学习成本

支持自定义函数,功能扩展很方便

背靠Hadoop,擅长存储分析海量数据集

从功能来说,数据仓库软件,至少需要具备下述两种能力:

存储数据的能力、分析数据的能力

Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述

两种能力,而是借助Hadoop。

Hive利用HDFS存储数据,利用MapReduce查询分析数据。

这样突然发现Hive没啥用,不过是套壳Hadoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写HQL,

Hive帮您转换成为MapReduce程序完成对数据的分析

Hive组件

用户接口

包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许

外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。

元数据存储

通常是存储在关系数据库如 mysql/derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是

否为外部表等),表的数据所在目录等

Driver驱动程序,包括语法解析器、计划编译器、优化器、执行器

完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在

随后有执行引擎调用执行。

执行引擎

Hive本身并不直接处理数据文件。而是通过执行引擎处理。当下Hive支持MapReduce、Tez、Spark3种执行引擎。

posted @ 2023-09-02 11:08  摆烂达人  阅读(6)  评论(0编辑  收藏  举报