开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请教一个问题,flink on yarn,tracking-url是如何注册的?

请教大佬们一个问题,flink on yarn,用FlinkYarnSessionCli启动session时,tracking-url是如何注册的,也就是yarn app list中tracking-url是怎么注册成flink的dashbord url的,是哪块代码逻辑的,求大佬们指点一下?

展开
收起
cuicuicuic 2024-02-24 12:47:04 34 0
3 条回答
写回答
取消 提交回答
  • tracking URL 是通过 FlinkYarnSessionCli 类中的 run 方法中的 createApplicationSubmissionContext 方法来注册的。具体来说,Flink 在 YARN 上启动时会创建一个 YARN Application,其中会包含 Flink 的 Dashboard URL 信息。在 FlinkYarnSessionCli 类中,会将 Dashboard URL 注册到 YARN 的 Application Report 中,这样就可以在 YARN 的应用列表中看到 Flink 的 Dashboard URL。相关的代码逻辑主要在 FlinkYarnSessionCli 类中的 run 方法中实现。,此回答整理自钉群“【②群】Apache Flink China社区”

    2024-02-24 17:12:55
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink on YARN中,tracking-url是通过FlinkYarnSessionCli启动session时注册的。具体来说,当您使用FlinkYarnSessionCli启动一个Flink session时,它会创建一个YARN Application,并将该Application的信息注册到YARN的ResourceManager上。

    在FlinkYarnSessionCli的代码中,tracking-url是通过以下步骤注册的:

    1. 首先,FlinkYarnSessionCli会创建一个YARN ApplicationMaster对象,用于管理YARN上的Flink应用程序。
    2. 接下来,FlinkYarnSessionCli会调用ApplicationMaster对象的registerApplicationMaster()方法,将Flink应用程序注册到YARN的ResourceManager上。
    3. 在注册过程中,FlinkYarnSessionCli会生成一个唯一的Application ID,并将其作为参数传递给registerApplicationMaster()方法。
    4. 在注册成功后,FlinkYarnSessionCli会获取到YARN分配给该应用程序的资源信息,包括ContainerID和资源规格等。
    5. 最后,FlinkYarnSessionCli会将tracking-url注册到YARN的Application Report中,以便在YARN的应用列表中显示。

    具体的代码逻辑可以在FlinkYarnSessionCli类的run()方法中找到。该方法负责创建YARN ApplicationMaster并执行注册过程。

    请注意,以上是一般的流程和代码逻辑,具体的实现可能会因Flink的版本和配置而有所不同。建议您查阅Flink的官方文档和源代码,以获取更详细的信息和准确的代码位置。

    2024-02-24 16:41:03
    赞同 展开评论 打赏
  • 在 Apache Flink 中,当您使用 FlinkYarnSessionCli 启动一个 YARN 会话时,tracking URL 的注册是通过与 YARN ResourceManager 的交互完成的。具体逻辑如下:

    1. FlinkYarnSessionCli 调用 run() 方法来启动 Flink on YARN 应用程序时,它会创建并提交一个 ApplicationSubmissionContext 给 YARN ResourceManager。

    2. 在创建 ApplicationSubmissionContext 的过程中,会设置一系列属性和配置,包括主类(通常是 org.apache.flink.yarn.YarnApplicationMasterRunner)、应用程序 jar 包、配置文件以及其他相关的资源请求信息。

    3. 当 ApplicationMaster (AM) 在 YARN 容器中启动后,它会初始化 Flink 运行环境,并启动 Web UI 服务。Web UI 服务的地址由 Flink 自身生成并绑定到一个随机的本地端口上。

    4. AM 在初始化完成后,会将其运行状态报告给 YARN ResourceManager,其中就包含了 Web UI 的地址信息。这部分逻辑通常位于 Flink YARN 客户端代码中,例如 YarnClusterDescriptor 类及其子类中关于如何封装和提交 YARN 应用的相关方法里。

    5. YARN ResourceManager 收到 AM 的状态报告后,在其内部维护的应用列表中更新该应用的状态信息,其中包括了 tracking URL,即指向 Flink Dashboard 的 URL。

    6. 用户可以通过 yarn application -list 或者查询 YARN ResourceManager 的 REST API 来获取这些已注册的 tracking URL。

    具体的代码实现可以参考 Flink 源码中的 org.apache.flink.yarn.YarnClusterDescriptor 和相关类的方法,比如 createApplicationSubmissionContext(),以及 YarnApplicationMasterRunner 类的初始化逻辑。由于 Flink 版本的差异,实际代码位置可能略有不同,请查阅对应版本的源代码了解详细实现。

    2024-02-24 14:49:23
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载