一、hive概念:

1.hive的产生背景:

     MapReduce中用于统计分析的数据大部分都是结构化的数据,如果数据量比较小的时候,直接使用mysql,当数据量大的时候,

针对这个结构化的数据的统计分析,sql更为方便,MapReduce的统计分析针对结构化数据的,绝大部分都可以使用sql语句做,比MapReduce开发成本低。出现了一个基于MR编程的,使用sql实现的工具,hive.

2.hive是什么:

1)Hive由Facebook实现并开源,http://hive.apache.org/

2)是基于Hadoop的一个数据仓库工具

3)可以将结构化的数据映射为一张数据库表

4)并提供 HQL(Hive SQL)查询功能

5)底层数据是存储在HDFS上

6)Hive的本质是将SQL语句转换为MapReduce任务运行

7)使不熟悉MapReduce的用户很方便地利用HQL处理和计算HDFS上的结构化数据
8)适用于离线批量计算 。

3.hive的架构:

Hive国产化 hive是哪个公司开发的_数据

1)用户接口层:

          1.CLI:shell方式操作   2.JDBC/ODBC:Java方式操作hive   3.web UI:可视化界面的操作 不推荐使用, 比较繁琐

2)thrift server层:跨语言操作

          对外提供 hive支持跨语言连接的服务

3)元数据层:

          hive的数据存储的两大部分:

              1、原始数据,真实数据存储在hdfs上的

              2、元数据,描述原始数据的数据,描述的是原始数据的存储规则的数据。hive的元数据存在关系型数据库中(mysql)

                    ①表的描述信息:包括表和hdfs的数据对应关系,表的属性

                    ②表的字段信息:字段类型、字段顺序

                    ③数据库的描述信息

4)核心驱动层:

  1. 驱动器Driver:驱动hql转化为MapReduce到提交的整个过程的执行
  2. 编译器:内部存储了很多Map和reduce的模板,将hql语句编译为mapreduce任务
  3. 优化器:将编译器的编译结果做一个优化,最终出现的就是最完美的执行方案
  4. 执行器:将优化器的优化结果,进行提交给集群进行执行

4.hive的缺点:

1)不支持update、delete操作,支持insert操作,但效率很低

2)查询延时性高

3)不支持事务