A:hive的本质:是将hql语句转换成mapredue去执行
1>优点:a:操作接口采用类sql语法,提供快速开发的能力
b:避免去屑mr程序,减少开发成本,减少mr的学习成本
c:hive的延迟比较高,比较适用用大量数据的统计分析,主要用于离线统计分析 ,对于实时要求不高的场合
f:hive支持自定义udf udaf,udtf函数,可根据自己的业务逻辑编写函数
2>缺点:
1>hive的hql表达能力有限:迭代式算法无法表达,数据挖掘方面不擅长,
hive效率比较低,延迟较高,对于小数据量分析无优势,
hive在调优方面力度比较粗糙,只能根据底层的mr去调优.
B:Hive的几大组件
a:用户接口(hive shell),JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive)
b:元数据(metastore):hive的元数据包括,数据库,表名。表的拥有者,列,分区字段,表的类型(是否外部表或者内部表)
d;hadoop:hive的数据是存储在hdfs文件系统上的,使用mr进行对数据进行统计分析
e:驱动器driver
解析器:将hql语句解析成抽象的语法树(AST),并且对表的字段是否存在,sql语义,类型等验证,并将AST语法树转化成逻辑查询块
编译器:编译器对逻辑执行计划进行编译,生成逻辑执行计划
优化器::对生成的逻辑执行计划进行优化,主要合并多余的操作,减少mr任务,提高效率,
执行器:对优化后的逻辑执行计划生成可执行的物理计划,执行器去执行。