Hive概念笔记

一、Hive简介

1.1 什么是Hive

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

本质是将SQL转化为MapReduce程序。

主要用来做离线数据分析,比直接用MapReduce开发效率更高。

1.2  为什么用Hive

直接使用Hadoop MapReduce的学习成本太高。MapReduce实现复杂查询逻辑开发难度太大。使用Hive操作接口类SQL语法,提供快速开发能力,避免了写MapReduce,减少开发人员学习成本,功能扩展很方便。

二、Hive架构

1.1  Hive组件

用户接口:  包括CLI、JDBC/ODBC、WebGUI。其中CLI为shell命令行;JDBC/ODBC是Hive的Java实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。

元数据存储:通常存储在关系数据库如MySQL/Derby中。hive将元数据存储在数据库中。hive中的元数据包括表的名字,表的列和分区及属性,表的属性(是否为外部表),表的数据所在目录等。

解释器、编译器、优化器、执行器:完成HQL查询语句从语法分析、词法分析、编译、优化及查询激活的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

1.2 Hive架构

2.3 Hive与Hadoop的关系

Hive利用HDFS存储数据,利用MapReduce查询分析数据。是一款基于Hadoop的数据仓库工具。

三、Hive与传统数据库对比

Hive是数据仓库工具,是面向分析的,不同于传统数据库。Hive用于海量数据的离线数据分析。hive具有sql数据库的外表,但是应用场景不同。

推荐阅读更多精彩内容