在 Amazon EMR 上配置 Flink Rest API

Configure Flink Rest API on Amazon EMR

我正在 运行通过 YARN 在 Amazon 的 EMR 上运行一个 Flink 应用程序,其中有一个主机和一个从机。

我正在尝试通过 ssh 进入主节点,然后访问 Flink REST API,但无法让 EMR 静态使用相同的 host/port。

我试过将此配置添加到 EMR 并从当前主节点的私有 DNS 中获取主机。每个 yarn-session.

运行 所在的实际端口不同
 [
  {
    "Classification": "flink-conf",
    "Properties": {
      "rest.port": "44477",
      "jobmanager.web.port": "44477",
      "jobmanager.web.upload.dir": "/home/hadoop"
    }
  }
]

我已验证这些属性也反映在 flink-conf.yaml 文件中。

以下是启动日志的摘录:

2018-09-06 21:34:33,749 INFO  org.apache.flink.configuration.GlobalConfiguration            - Loading configuration property: env.yarn.conf.dir, /etc/hadoop/conf
2018-09-06 21:34:33,751 INFO  org.apache.flink.configuration.GlobalConfiguration            - Loading configuration property: env.hadoop.conf.dir, /etc/hadoop/conf
2018-09-06 21:34:33,751 INFO  org.apache.flink.configuration.GlobalConfiguration            - Loading configuration property: rest.port, 44477
2018-09-06 21:34:33,751 INFO  org.apache.flink.configuration.GlobalConfiguration            - Loading configuration property: jobmanager.web.port, 44477

Flink JobManager is now running on ip-10-2-3-25.ec2.internal:41161 with leader id 00000000-0000-0000-0000-000000000000.
JobManager Web Interface: http://ip-10-2-3-25.ec2.internal:41161

我也用这个通过电子邮件发送给 Flink 邮件列表,发现这是使用我为 EMR 设置的 YARN 的结果。 YARN 忽略 Flink 配置,因为变量是在运行时设置的,并且可以通过 cli 命令 yarn application -status [appId] 访问,其中 [appId] 是 YARN 应用程序的 id,可以通过 yarn application -list.[= 找到13=]