Quels sont les avantages D'Apache Beam over Spark/Flink pour le traitement par lots?

Apache Beam prend en charge plusieurs pistes arrière, y compris Apache Spark et Flink. Je connais Spark / Flink et j'essaie de voir les avantages et les inconvénients de Beam pour le traitement par lots.

en regardant le exemple de compte de mots de faisceau , il se sent très similaire aux équivalents Spark/Flink natifs, peut-être avec une syntaxe un peu plus verbeuse.

Je ne vois actuellement pas un grand avantage de choisir Faisceau sur L'étincelle / scintillement pour une telle tâche. Les seules observations que je puisse faire jusqu'à présent:

  • Pro: Abstraction au-dessus d'exécution différents backends.
  • Con: cette abstraction vient au prix d'avoir moins de contrôle sur ce qui est exécuté exactement en Spark/Flink.

y a-t-il de meilleurs exemples qui mettent en évidence d'autres avantages/inconvénients du modèle Beam? Est-il des informations sur la façon de la perte de contrôle affecte la performance?

notez que je ne demande pas de différences dans les aspects de streaming, qui sont en partie couverts dans cette question et résumé dans cet article (périmé en raison de Spark 1.X).

28
demandé sur Community 2017-04-24 09:26:45

1 réponses

il y a quelques choses que Beam ajoute sur beaucoup de moteurs existants.

concevoir la poutre modèle utile d'abstraction plus nombreux, différents moteurs est délicate. Faisceau n'est ni l'intersection de la fonctionnalité de tous les moteurs (trop limité!), ni l'union (trop d'un évier de cuisine!). Au lieu de cela, Beam essaie d'être à l'avant-garde du traitement des données, poussant la fonctionnalité dans les moteurs de course et en tirant des modèles hors des moteurs de course.

  • "Keyed State est un grand exemple de fonctionnalité qui existait en divers moteurs et a permis des cas d'utilisation intéressants et communs, mais n'a pas été à l'origine expressible en faisceau. Nous avons récemment étendu le modèle Beam pour inclure une version de cette fonctionnalité selon les de Beam "principes de conception .
  • et vice versa, nous espérons que le faisceau influencera également les cartes routières de divers moteurs. Par exemple, la sémantique des faisceaux de données de Flink était influencé par le modèle Beam (née Dataflow).
  • cela signifie également que les capacités ne seront pas toujours exactement les mêmes à travers différents faisceaux à un moment donné. C'est pourquoi nous utilisons "capability matrix pour essayer de communiquer clairement l'état des choses.
42
répondu Frances 2017-04-28 05:46:50