如何在 AWS EMR 上通过调度程序 http api (tcp/8081) 提交作业?

How to submit job over dispatcher http api (tcp/8081) on AWS EMR?

我正在尝试通过 tcp/8081 向 AWS EMR 上的 apache flink 提交作业。

我假设 AWS EMR 具有与使用调度程序的集群管理器相似的架构,如this page which expose dispatcher web frontend to clients. However, looking at online doc中所述,将作业提交到 flink 的一般方法是使用 aws cli sdk 而不是通过 tcp/8081.

我使用 apache beam Flink Runner 作为客户端,我需要的是 dispatcher web 前端

我在哪里可以找到 dispatcher frontend 相当于 AWS EMR 上的 tcp/8081

我能够在 Flink Dashboard 上找到 Web Front end

https://docs.aws.amazon.com/emr/latest/ReleaseGuide/flink-web-interface.html

我的问题是 ApplicationMaster 指向 内部地址 所以我不得不更改为 public dns 访问控制面板。

http://ec2-x-x-x-x.ap-northeast-1.compute.amazonaws.com:20888/proxy/application_1568859410287_0003/#/jobmanager/log

使用这个地址,我能够将作业提交到 apache flink。 您也可以使用 yarn application --list 获得相同的地址。不过,您必须登录 masterdata 节点。

yarn application --list
19/09/20 06:37:51 INFO client.RMProxy: Connecting to ResourceManager at ip-172-31-15-54.ap-northeast-1.compute.internal/172.31.15.54:8032
Total number of applications (application-types: [] and states: [SUBMITTED, ACCEPTED, RUNNING]):1
                Application-Id      Application-Name        Application-Type          User           Queue                   State             Final-State             Progress                           Tracking-URL
application_1568859410287_0003  Flink session cluster           Apache Flink        hadoop         default                 RUNNING               UNDEFINED                 100%    http://ip-172-31-1-84.ap-northeast-1.compute.internal:38205