hive的简单了解

1.hive介绍
Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据。它是Facebook 2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL语句作为数据访问接口

2.hive的优缺点
优点:
    Hive 使用类SQL 查询语法, 最大限度的实现了和SQL标准的兼容,大大降低了传统数据分析人员处理大数据的难度
    使用JDBC 接口/ODBC接口,开发人员更易开发应用;
    以MR 作为计算引擎、HDFS 作为存储系统,为超大数据集设计的计算/ 扩展能力;
    统一的元数据管理(Derby、MySql等),并可与Pig 、spark等共享;
缺点:
    Hive 的HQL 表达的能力有限,比如不支持UPDATE、非等值连接、DELETE、INSERT单条等;
    由于Hive自动生成MapReduce 作业, HQL 调优困难;
    粒度较粗,可控性差,是因为数据是读的时候进行类型的转换,mysql关系型数据是在写入的时候就检查了数据的类型。

3.hive与mysql的区别
(1)语言不同:hive时hql语言,mysql时sql语言
(2)数据储存位置不同:hive是hdfs,mysql是储存在自己的系统中
(3)数据格式:hive格式可以自定义,mysql有自己的系统定义格式
(4)数据更新:hive不支持更新,mysql可以
(5)索引:hive没有索引,因此查询数据的时候是通过mapreduce很暴力的把数据都查询一遍,也造成了hive查询数据速度很慢的原因,而mysql有索引;
(6)延迟:hive延迟性高,mysql低
(7)数据规模:hive数据规模大,mysql小
(8)底层执行原理:hive底层是用的mapreduce,而mysql是excutor执行器;

4.hive的组成
    服务端组件和客户端组件。
    服务端组件:
    Driver组件:该组件包括Complier、Optimizer和Executor,它的作用是将HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架
    Metastore组件:元数据服务组件,这个组件存储Hive的元数据,Hive的元数据存储在关系数据库里,Hive支持的关系数据库有Derby和Mysql。元数据对于Hive十分重要,因此Hive支持把Metastore服务独立出来,安装到远程的服务器集群里,从而解耦Hive服务和Metastore服务,保证Hive运行的健壮性
    Thrift服务:Thrift是Facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,Hive集成了该服务,能让不同的编程语言调用Hive的接口
    客户端组件:
    CLI:Command Line Interface,命令行接口
    JDBC/ODBC:Hive架构的JDBC和ODBC接口是建立在Thrift客户端之上。
    WEBGUI:Hive客户端提供了一种通过网页的方式访问Hive所提供的服务。这个接口对应Hive的HWI组件(Hive Web Interface),使用前要启动HWI服务。

hive的简单了解

5.Hive查询的执行过程:

hive的简单了解