Hi Ruibin,

Given that you are starting fresh I would recommend going with Kubernetes
and specifically checking out the Flink Kubernetes Operator. [1] I have
worked with Yarn for years before I transitioned to Kubernetes a year ago
and I am pleased that we made the jump. To address you point on a very high
level:

1. Stability: By now both Yarn and Kubernetes are quite stable.
2. Popularity: My educated guess is that Kubernetes is the more popular
choice by now.
3. Community support: Kubernetes wins here imho, both in terms of the
provider itself and in terms of the Flink integration. See my recent,
admittedly biased tweet thread. [2]
4. Toolchains: Hands down Kubernetes. One slight note is that traditionally
the Kubernetes toolchain is in Golang, which raises the barrier of entry
for Java/Scala folks. By now the Java toolchain for Kubernetes has grown
quite a bit though, we are using tools like fabric8 [3] and the Java
Operator SDK [4] extensively.

Honourable mention is that given the declarative REST APIs of Kubernetes
debugging applications is significantly easier than on Yarn.

[1] https://github.com/apache/flink-kubernetes-operator
[2] https://mobile.twitter.com/MartonBalassi/status/1603498076882214925
[3] https://github.com/fabric8io/kubernetes-client
[4] https://javaoperatorsdk.io/

On Mon, Dec 19, 2022 at 7:56 AM Ruibin Xing <xingro...@gmail.com> wrote:

> Hi all,
>
> We are currently setting up a new Flink cluster and are trying to decide
> on the best deployment method. As far as we know, Flink supports two
> resource providers: YARN and Kubernetes. We are having difficulty
> evaluating the pros and cons of each provider, particularly in terms of
> stability, popularity, community support, and toolchains.
>
> Could someone please share their experience with these resource providers
> and provide a recommendation for our new cluster?
>
> Best, Ruibin
>
>

Reply via email to