hive介绍
hive是一个开源的用于大数据分析和统计的数据库工具,它的存储基于HDFS,计算基于MapReduce或Spark,可以将结构化数据映射成表,并提供类SQL查询功能。
特点
提供类SQL查询,容易上手,开发方便 封装了很多方法,尽量避免了开发MapReduce程序,减少成本 支持自定义函数,可以根据需求实现函数 适用于处理大规模数据,小数据的处理没有优势 执行延迟较高,适合用于数据分析,不适合对时效性要求较高的场景
hive的架构

MetaStore:元数据,数据的数据,比如某个表的元数据,包括表名、表所属的数据库、表的类型、表的数据目录等; CLI(命令行接口)、JDBC:用户接口,用以访问hive; Sql Parser 解析器:将SQL转换成抽象语法树,一般用第三方工具库完成;对抽象语法树进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误; Physical Plan 编译器:将抽象语法树编译生成逻辑执行计划; Query Optimizer 优化器:对逻辑执行计划进行优化; Execution 执行器:把逻辑执行计划转换成可以运行的物理计划。对Hive而言,就是 MR/Spark; HDFS:hive数据文件存放的地方。
hive运行机制
hive与数据库的区别
数据库支持事务,可读可写;而hive不支持事务,一般用于读多写少的情况,不建议改动数据,因为数据存储在HDFS中,而HDFS的文件不支持修改; hive延迟比较大,因其底层是MapReduce,执行效率较慢。但当数据规模较大的情况下,hive的并行计算优势就体现出来了,数据库的效率就不如hive了; hive不支持索引,查询的时候是全表扫描,这也是其延迟大的原因之一;
hive的数据类型
| 类型 | 长度 |
小结
文章转载自大数据的奇妙冒险,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




