基于Hadoop的一个数据仓库工具,将结构化的数据文件映射成一张表,提供类SQL查询功能。
本质是:将HQL转化成MapReduce程序
1)Hive处理的数据存储在HDFS中,数据库将数据保存在块设备或者本地文件系统中。
2)Hive分析数据底层的实现是MapReduce,数据库通常有自己的执行引擎。例:MySQL的执行引擎:innoDB
3)Hive中不建议对数据的改写,所有的数据都是在加载的时候确定好的。
1.2 优缺点1.2.1优点
1) *** 作接口采用类SQL语法
2)避免了去写MapReduce
3)执行延迟比较高,实时性低
4)善于处理大数据量,由于Hive的执行延迟高,所以不善于处理小量数据
5)Hive支持用户自定义函数
1.2.2 缺点1.Hive的HQL表达能力有限
(1)迭代式算法无法表达
(2)数据挖掘方面不擅长
1.2.2 缺点1.Hive的HQL表达能力有限
(1)迭代式算法无法表达
(2)数据挖掘方面不擅长
2.Hive的效率比较低
(1)Hive自动生成的MapReduce作业
(2)Hive在加载数据时中不对数据进行处理,没有建立索引,Hive要访问数据中满足条件的特定值时,需要暴力扫描整个数据,因此访问延迟较高
1.3Hive 架构 1.3.1 用户接口:Client- hive shell
- JDBC/ODBC 一种用于执行SQL语句的Java API
- WebUI(浏览器访问)
表名及所属数据库,表的数据所在目录,列/分区字段、表的类型(是否是外部表)
表的拥有者等。
默认存储在自带的derby数据库(derby数据库只能允许一个会话连接),实际开发部署的时候会将hive的元数据修改为保存在mysql中。
1.3.3 Hadoop存储在HDFS中,使用MapReduce进行计算
1.3.4 驱动器(1)解析器(SQL Parser):将 SQL字符串==>语法树AST 分析表是否存在、字段是否存在、 SQL语义是否有误
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/Spark。
1.4Hive工作流程https://blog.csdn.net/caoyuan666/article/details/111809855
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)