什么是hive
Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
什么是结构化数据:结构化数据就是有规律的
元数据:描述数据的数据,例如表头,注释等
hive不存储数据,hive的数据存储在hdfs上面,hive吧数据映射成一张表,hive是给数据添加了描述信息,也就是添加了元数据;
映射成一张表之后,优点是什么:方便对数据进行分析,查询等。
如果没有hive,处理数据就需要写MapReduce进行数据处理了。
好处就是,通过写sql,转换为MapReduce程序,来处理数据。
本质是:将HQL转化成MapReduce程序
hive不存储数据,数据存储在hdfs上,hive就是工具,用来将sql转换为MapReduce程序。执行在MapReduce上面。
(1)Hive处理的数据存储在HDFS
(2)Hive分析数据底层的实现是MapReduce
(3)执行程序运行在Yarn上
1.2Hive的优缺点
1.2.1优点
(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
(2)避免了去写MapReduce,减少开发人员的学习成本。
(3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。(只用于做离线数据)
(4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
(5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
1.2.2缺点
1)Hive的HQL表达能力有限
(1)迭代式算法无法表达(无法实现循环)
(2)数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。
2)Hive的效率比较低(因为hive把sql翻译成MapReduce程序,没有直接写MapReduce程序好)
(1)Hive自动生成的MapReduce作业,通常情况下不够智能化
(2)Hive调优比较困难,粒度较粗(hive只能对sql进行调优,无法对hive本身进行调优)
1.3Hive架构原理
Metastore
通过客户端,jdbc协议连接,主要工作是把sql翻译成MapReduce程序,执行就行了
需要知道hive是做什么的?
hive中驱动器Driver四个组件是什么?
1)用户接口:Client
CLI(