Gobblin部署模式

作者: 阿猫阿狗Hakuna | 来源:发表于2018-12-21 14:12 被阅读1次

Overview

       Gobblin可以运行在不同的平台上。现在,Gobblin可以运行在standalone模式(单机)和Hadoop MapReduce模式(Hadoop集群),以及Yarn框架上。下面将要介绍Gobblin不同部署模式的架构。
       Gobblin支持 Java 7 及以上版本,只能运行在Hadoop 2.x版本上。

Standalone架构

       下图展示了Gobblin standalone的架构。在standalone模式下,Gobblin的实例运行在单个的JVM上,且任务由一个可配置的线程池来运行。standalone模式适用于小型的数据库。Gobblin的默认模式为standalone。


image.png

       在standalone模式下,JobScheduler作为一个守护进程运行,使用JobLaunchers调度和运行作业。JobScheduler维护一个线程池,每个job运行都会启动从其中启动一个新的JobLauncher。Gobblin提供两种类型的JobLauchers,LocalJobLauncher和MRJobLauncher,分别用在单机和MapReduce上。
       每个LocalJobLauncher启动并管理一些组件来执行Gobblin Job的task。具体来说,TaskExecutor负责在线程池中执行任务,其大小可以根据每个作业配置。LocalTaskStateTracker负责跟踪正在运行的任务的状态,特别是更新任务指标。LocalJobLauncher按照以下步骤启动并运行一个Gobblin作业:
1.启动TaskExecutor和LocalTaskStateTracker。
2.创建作业配置中指定的Source类的实例,并获取要执行的WorkUnits列表。
3.为列表中的每个WorkUnits创建任务,向LocalTaskStateTracker注册任务,并将任务提交给要运行的TaskExecutor。
4.等待所有提交的任务完成。
5.在完成所有提交的任务后,收集任务状态并将它们持久化到状态存储,并发布提取的数据。

Hadoop MapReduce架构

       下图展示了Gobblin运行在MapReduce上的架构。如图所示,Gobblin作业被变成一个只有mapper的MapReduce任务。这里的基本思想是使用mappers作为容器来运行Gobblin任务。


image.png

       在这种模式下,MRJobLauncher用于在Hadoop MapReduce上启动和运行Gobblin作业,步骤如下:
1.创建作业配置中指定的Source类的实例,并获取要执行的WorkUnits列表。
2.将每个WorkUnits序列化到HDFS上的文件中,稍后映射器将读取该文件。
3.创建一个列出存储序列化WorkUnits的文件路径的文件。
4.创建和配置一个只使用mapper的Hadoop MapReduce作业,该作业将步骤3中创建的文件作为输入。
5.启动MapReduce作业以在选择的集群上运行,并等待它完成。
6.完成MapReduce作业后,收集任务状态并将它们持久化到状态存储区,并发布提取的数据。
       Gobblin MapReduce作业中的mapper运行一个或多个任务,具体取决于要执行的workunit数量和作业配置中指定的(可选的)最大mapper数量。如果作业配置中没有指定mapper的最大数量,则每个workunit对应一个mapper执行的任务,每个mapper只运行一个任务。否则,如果指定了最大mapper数量,且workunit数量超过允许的最大mapper数量,则每个mapper可以处理多个workunit。还有一种名为MultiWorkUnit的特殊类型的workunit,它将多个要在单个mapper中的批处理中一起执行的workunit分组在一起。

       Gobblin MapReduce作业中的mapper按照以下步骤运行分配给它的任务:
1.启动TaskExecutor,负责在可配置大小的线程池中执行任务;启动MRTaskStateTracker,负责跟踪mapper中正在运行的任务状态。
2.读取下一个输入记录,该记录是存储序列化workunit的文件的路径。
3.反序列化workunit并将其添加到要执行的workunit列表中。如果输入是一个MultiWorkUnit,那么它包装的workunit将全部添加到列表中。重复步骤2和步骤3,直到所有分配的workunit都被反序列化并添加到列表中。
4.对于要执行的任务列表中的每个workunit,为workunit创建一个任务,向MRTaskStateTracker注册任务,并将任务提交给要运行的TaskExecutor。
5.等待所有提交的任务完成。
6.在完成所有提交的任务后,将每个任务的状态写到一个文件中,当收集任务状态时,MRJobLauncher将读取该文件。
7.返回步骤2,如果可用,读取下一个输入记录。

相关文章

  • Gobblin部署模式

    Overview Gobblin可以运行在不同的平台上。现在,Gobblin可以运行在standalone模...

  • 关于gobblin应用-mapreduce+azkaban

    一。 gobblin部署【mapreduce模式】 1.源码编译:下载源码链接 b。切换到解压文件夹根目录【gra...

  • 数据采集框架Gobblin简介

    问题导读:Gobblin的架构设计是怎样的?Gobblin拥有哪些组建,如何实现可扩展?Gobblin采集执行流程...

  • 部署步骤

    部署 Collector 单机模式 集群模式 部署 webui server,doc 部署 Java Agent,...

  • pinot + gobblin

    hadoop2.7.1 kafka 1 . 启动 2 . 创建topic 3 . 查看topic pinot 1...

  • Redis集群部署

    Redis集群部署 Redis集群有多种部署模式,包括主从模式、哨兵模式、集群模式 主从模式   主从模式可以是一...

  • 基于 Docker 安装 Zookeeper

    概述 Zookeeper 部署有三种方式,单机模式、集群模式、伪集群模式,以下采用 Docker 的方式部署 单机...

  • vertx架构

    对于部署标准模式verticle,vertx的架构如下: 对于部署worker模式verticle,vertx的架...

  • Flink 集群与部署

    部署一个 Flink 集群,首先需要根据自己的实际情况选择适合自己的部署模式和部署平台 1.1 部署模式主要根据以...

  • Apache Flink——集群部署模式案例

    前言 本文重点是Flink on Yarn模式的部署,但在写Yarn 模式部署之前,说一下 独立模式(Standa...

网友评论

    本文标题:Gobblin部署模式

    本文链接:https://www.haomeiwen.com/subject/gvpmkqtx.html