前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive概念以及架构介绍

Hive概念以及架构介绍

作者头像
俺也想起舞
发布2019-07-24 14:35:49
5800
发布2019-07-24 14:35:49
举报

Hive的架构、执行任务的流程

Hive概念以及架构

0. 目录

  • 什么是Hive
  • Hive 体系介绍
  • Hive 执行任务的流程

1. 什么是Hive

  • Hive是Hadoop工具家族中一个重要成员,可以将结构化的数据文件(HDFS)映射为一张数据库表。
  • Hive 定义了简单的类 SQL 查询语言,被称为 HQL,实现方便高效的数据查询
  • Hive的本质是将HQL,转换成MapReduce任务,完成整个的数据的ETL,减少编写MapReduce的复杂度

2.Hive体系介绍

Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、Hive WEB Interface(HWI)、Metastore和Driver(Complier、Optimizer和Executor)

  • Driver:核心组件。整个Hive的核心,该组件包括Complier、Optimizer和Executor,它的作用是将我们写的HQL语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架。
  • Metastore: 元数据服务组件。这个组件存储Hive元数据,放在关系型数据库中,支持derby、mysql。
  • ThriftServers:提供JDBC和ODBC接入的能力,它用来进行可扩展且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口。
  • CLI:command line interface,命令行接口
  • Hive WEB Interface(HWI):hive客户端提供了一种通过网页的方式访问hive所提供的服务。这个接口对应hive的hwi组件(hive web interface)

3. Hive执行流程

  1. UI调用Drive的execute接口(1)
  2. Drive创建一个查询的Session事件并发送这个查询到Compiler,Compiler收到Session生成执行计划(2)
  3. Compiler从MetaStore中获取一些必要的数据(3,4)
  4. 在整个Plan Tree中,MetaStore用于查询表达式的类型检查,以及根据查询谓语(query predicates)精简partitions 。该Plan由Compiler生成,是一个DAG(Directed acyclic graph,有向无环图)执行步骤,里面的步骤包括map/reduce jobmetadata 操作、HDFS上的操作,对于map/reduce job,里面包含map operator trees和一个reduce operator tree(5)
  5. 提交执行计划到Excution Engine,并由Execution Engine将各个阶段提交个适当的组件执行(6,6.1,6.2 , 6.3)
  6. 在每个任务(mapper / reducer)中,表或者中间输出相关的反序列化器从HDFS读取行,并通过相关的操作树进行传递。一旦这些输出产生,将通过序列化器生成零时的的HDFS文件(这个只发生在只有Map没有reduce的情况),生成的HDFS零时文件用于执行计划后续的Map/Reduce阶段。对于DML操作,零时文件最终移动到表的位置。该方案确保不出现脏数据读取(文件重命名是HDFS中的原子操作),对于查询,临时文件的内容由Execution Engine直接从HDFS读取,作为从Driver Fetch API的一部分(7,8,9)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hive概念以及架构
    • 0. 目录
      • 1. 什么是Hive
        • 2.Hive体系介绍
          • 3. Hive执行流程
          相关产品与服务
          文件存储
          文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档