原创 | 大数据入门基础系列之浅谈Hive的工作原理

-回复 -浏览
楼主 2019-01-10 05:11:01
举报 只看此人 收藏本贴 楼主



点击上方 "大数据躺过的坑" 关注我们






在前面的博文里,我已经介绍了

大数据躺过的坑之2017年9月份所有微信公众号干货汇总

大数据躺过的坑之2017年10月份所有微信公众号干货汇总

大数据躺过的坑之2017年11月份所有微信公众号干货汇总

【夜读】你这个病,叫做误把熬夜当拼命

原创 | 大数据入门基础系列之浅谈Hive的特点

【夜读】所谓人生开挂,不过是厚积薄发

原创 | 大数据入门基础系列之浅谈Hive的优缺点

【夜读】唯有不断充实自己,增强自己的核心竞争力,把今天的自己活成人生中最好的自己,你才有机会超越年龄带给你的局限。

原创 |  大数据入门基础系列之浅谈Hive和数据库的差别











Hive 工作原理如下图所示

       左边是hive,右边是Hadoop。

Hive构建在Hadoop之上的。

        (1)HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的;

        (2)所有的数据都是存储在Hadoop中;

        (3)查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table);

        (4)Hadoop和Hive都是用UTF-8编码的





     Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。



流程大致步骤为:
    1. 用户提交查询等任务给Driver。
    2. 编译器获得该用户的任务Plan。
    3. 编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。
    4. 编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,将逻辑计划转化为物理的计划(MapReduce), 最后选择最佳的策略。
    5. 将最终的计划提交给Driver。
    6. Driver将计划Plan转交给ExecutionEngine去执行,获取元数据信息,提交给JobTracker或者SourceManager执行该任务,任务会直接读取HDFS中文件进行相应的操作。
    7. 获取执行的结果。
    8. 取得并返回执行结果。




        在后续的微信公众号博文里,我会分别详细剖析Hive组件!





同时,大可以关注我的个人博客

   http://www.cnblogs.com/zlslch/   和  http://www.cnblogs.com/lchzls/ 



       以及对应本平台的QQ群:161156071(大数据躺过的坑)








        本文版权归大数据躺过的坑)作者和微信公众平台共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,您可以通过下边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【点赞】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!

看完本文有收获?请转发分享给更多人

关注「大数据躺过的坑」,提升大神技能






觉得不错,请点赞和留言↓

我要推荐
转发到