Hive简介
Hive是什么?
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将SQL转换为MapReduce程序。主要用途:用来做离线数据分析,比直接用MapReduce开发效率更高。
由来:
看前五问?
1.Hive是什么:
基于Hadoop的数仓基础框架(工具),集成化的数据分析平台。本质:是SQL的解析引擎,将SQL转化为MapReduce程序。主要用途:用来做离线数据分析,比直接用MapReduce开发效率高Hive的表其实就是HDFS的目录/文件夹,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/RJob里使用这些数据。Hive的表对应HDFS的目录(或文件夹);Hive表中的数据对应HDFS的文件2.为什么使用:
直接使用MR处理数据会加大人员开发学习成本MR实现复杂逻辑查询开发拿督大Hive使用接口采用SQL语法,提供快速开发能力避免去写MR,减少开发成本功能可扩展性强解耦合分布执行降低出问题的风险用空间换时间用多步换取最终使用的数据的高效性。3.数据仓库分层架构:
名称解释:
Client(客户端)
用户接口主要有三个:CLI,JDBC/ODBC和WebUI
CLI,即Shell命令行JDBC/ODBC是Hive的Java,与使用传统数据库JDBC的方式类似WebGUI是通过浏览器访问Hivemetastore(元数据存储)
Hive将元数据存储在数据库中(metastore),目前只支持mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等Driver:(驱动)
解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行MapReduce---(HDFSHBase)
Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如select*fromtable不会生成MapRedcue任务)
4.Hive与Hadoop的关系:
Hive利用HDFS存储数据,运用MR处理数据
Q:数据仓库是大型数据库?Hive是否可以取代MySql?
答:数仓绝不是为了取代数据库而出现为了分析而出现
数据库必须要有数仓根据公司是否需要开展分析而决定是否设定。
如果觉得对你有所帮助。记得收藏和