Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Pass the blacklist information to cluster ResourceManager

Yarn

We First, nodes' attributes should include machine ip attribute, then we can control containers do not on some mechines by yarn AllocationTags and by yarn PlacementConstraints.

Now Flink use hadoop-2.x and request container by ResourceRequest api, it don't support PlacementConstraints.

So for define Allocation tags and use PlacementConstraints, I will introduce hadoop-3.x SchedulingRequest api by java reflect mechanism.

When the executions are scheduled, we I will add blacklist information of the blacklist to yarn PlacementConstraint. In this way, I can ensure that the yarn container is not on the machines in the blacklist.https://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/PlacementConstraints.html

Kubernetes

My code only supports Yarn integration. But as far as I know, we could use nodeaffinity or podaffinity to achieve the same goal with Yarn PlacementConstraint in K8s integration. 

For Kubernetes, we could the node selector to control where to assign the pod. However, one difference is that the K8s Apiserver could not help us to persistent this information. We need to store it by Flink internally.

...

We could achieve the same goal with Yarn PlacementConstraint in K8s integration by node-affinity if nodes had attached ip label.

The same as yarn, when the executions are scheduled, I will add blacklist information to k8s PodSpec.

Mesos

According to 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyFLINK-22352
 the community decided to deprecate Mesos support in Apache Flink.

...