hive的优缺点

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任务,提高效率,

                        执行器:对优化后的逻辑执行计划生成可执行的物理计划,执行器去执行。

    

猜你喜欢

转载自blog.csdn.net/w5201314ws6123/article/details/87477700