Hive:数据分析引擎
了解
大数据的终极目标: 使用SQL语句来处理大数据
-  
Hadoop的体系架构中:
- Hive:支持SOL
 - Pig:支持PiqLatin
 
 -  
Spark的体系架构中:
- Spark SQL:类似Hive,支持SOL、支持DSL
 
 -  
另一个:Impala
 
8.1 什么是Hive?
起源自facebook由Jeff Hammerbacher领导的团队
2008年facebook把hive项目贡献给Apache
定义了一种类SQL语言HiveQL。可以看成是仍SQL到Map-Reduce的映射器
提供Hive shell、JDBC/ODBC、Thrift客户端等接
-  
Hive是一个基于HDFS之上的数据仓库
Hive HDFS 表 目录 数据 文件 分区 目录 桶 文件  -  
Hive基于Hadoop之上的一个数据分析引擎
-  
Hive是一个翻译器,把SQL语句翻译成一个MapReduce程序
 -  
Hive 2.x 以前:SQL——HIve——MapReduce
 -  
Hive 2.x 以后:推荐使用Spark作为SQL的执行引擎(只针对Hadoop 3.想以前)
 -  
常见的数据分析引擎:Hive、Pig、Impala、Spark SQL
 
 -  
 -  
Hive支持SQL的一个子集(SQL92的一个子集)
 
8.2 Apache Hive的体系结构
Hive 最核心的是它的翻译器,是它的核心驱动

-  
用户接口主要有三个:CLI,JDBC/ODBC和 WebUI
- CLI,即Shell命令行
 - JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似
 - WebGUI是通过浏览器访问 Hive
 
 -  
Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等
 -  
解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行
 -  
Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)
 



















