Hive简介
- Hive:数据仓库
- Hive:解释器,编译器,优化器等。
- Hive运行时,元数据存储在关系型数据库里面。
数据库与数据仓库的区别
1.数据库是用来接收业务数据,需要很短的是时间内返回结果。数据仓库不需要,只要能得到就行,当然时间越快越好。时间越快越好说明,我后面计算的时候,效率越高越好。
2.数据仓库能够收纳各种数据源的数据。而数据库只能保存某一个产品线。
Hive的架构
1.用户接口主要有三个:CLI,CLient和WUI。其中最常用的CLI,CLI启动的死后,会同时启用一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。再启动Client模式的时候,需要指出Hive Server所在节点,并且再该节点启动Hive Server。WUI是通过浏览器房屋内Hive。
2.Hive将元数据存储再数据库中,如mysql/derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据再所在的目录等。
3.解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化及查询计划的生成。生成的查询计划存储再HDFS中,并在随后又MapReduce调用执行。
4.Hive的数据存储再HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如Select * from tb1不会生成MapRedcue任务)