Hive的工作原理,
一、SQL语句转换成MapReduce作业的基本原理join的实现原理:sql获取的数据先通过map函数处理,转换成key-value形式,接着shuffle为归并的过程,将key相同的归并到一起,最后通过Reduce函数处理。(关于MapReduce与shuffle的详解请看MapReduce篇)
二、 Hive中SQL查询转换成MapReduce作业的过程 •当用户向Hive输入一段命令或查询时,Hive需要与Hadoop交互工作来完成该操作: •驱动模块接收该命令或查询编译器 •对该命令或查询进行解析编译 •由优化器对该命令或查询进行优化计算 •该命令或查询通过执行器进行执行 作业图:
第1步:由Hive驱动模块中的编译器对用户输入的SQL语言进行词法和语法解析,将SQL语句转化为抽象语法树的形式
第2步:抽象语法树的结构仍很复杂,不方便直接翻译为MapReduce算法程序,因此,把抽象语法书转化为查询块
第3步:把查询块转换成逻辑查询计划,里面包含了许多逻辑操作符
第4步:重写逻辑查询计划,进行优化,合并多余操作,减少MapReduce任务数量
第5步:将逻辑操作符转换成需要执行的具体MapReduce任务
第6步:对生成的MapReduce任务进行优化,生成最终的MapReduce任务执行计划
第7步:由Hive驱动模块中的执行器,对最终的MapReduce任务进行执行输出
Impala数据仓库: •Impala是由Cloudera公司开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase上的PB级大数据,在性能上比Hive高出3~30倍 •Impala的运行需要依赖于Hive的元数据 •Impala是参照Dremel系统进行设计的 •Impala采用了与商用并行关系数据库类似的分布式查询引擎,可以直接与HDFS和HBase进行交互查询 •Impala和Hive采用相同的SQL语法、ODBC驱动程序和用户接口
总结得出:与Hive属于同一类型的数据仓库,现配合与Hive使用,性能较高,弥补Hive本身存在的缺陷,在这里就不细讲了
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。