Apache faisceau passé et présent: Google ne plus utiliser le MapReduce

Auteur | compiler une seule étape

Modifier | Tina

10 janvier Apache Software Foundation a annoncé, Apache faisceau éclos avec succès et devenir un nouveau projet de niveau haut de la Fondation. Google open source moment du faisceau, lorsque l'introduction d'une variété de grandes quantités de données moteur de traitement florissant un cadre de programmation unifié, unifiée traitement par lots et le traitement des flux, correspondent à une variété de moteurs de traitement, les pousser dans l'arrière-plan, pour occuper l'entrée. projet Apache faisceau profitera à toutes les parties concernées, de mettre l'accent sur l'innovation technologique, de fournir une meilleure performance, une meilleure fiabilité, une utilisation plus facile et la gestion de la maintenance.

EDITORIAL

« Et Dieu dit: Que la lumière soit et la lumière fut. » - "Bible"

10 janvier Apache Software Foundation a annoncé, Apache faisceau éclos avec succès et devenir un nouveau projet de niveau haut de la Fondation, basée sur Apache V2 licence open source.

En 2003, Google a publié un gros volumes de données bien connu trois documents, connu sous le nom de la Troïka: Google FS, MapReduce, BigTable. Bien que Google n'a pas révélé la source de ces trois produits, mais elle a détaillé la thèse de la conception trois produits ouvre le monde de la grande époque de données! tout cela grâce à tous, Doug Cutting réalisé du grand Dieu, selon le document de Google un prototype de Hadoop MapReduce +, Hadoop divers cercles écologiques dérivés en plein essor, puis Spark plus tard, les calculs de flux, etc., à partir trois documents.

Malheureusement, Google Bien que cela ouvre de grands moments, mais toujours juste être satisfait avec un ou deux articles publiés à l'occasion afin de souligner son leadership dans la théorie et l'ingénierie, ont jamais personnellement impliqué, en particulier, n'a pas fait aucune contribution à l'écosystème open source, ainsi que des avantages tangibles n'a pas été obtenu à partir du grand marché des données.

L'amère expérience, Google a commencé à marcher sur la route de l'open source, fera la promotion de leurs propres normes à la communauté. De la bien connue Kubernetes, à Février 2016 Google a annoncé une contribution de grande envergure Apache faisceau (anciennement connu sous le nom de Google DataFlow) à la Fondation Apache pour l'incubation, la récente tensorflow chaud et ainsi de suite, l'action continue. Apache faisceau est considéré après MapReduce, GFS et BigQuery, etc., la communauté open source de Google a une contribution très importante dans le domaine de la grande traitement des données.

En d'autres termes, dans un monde de traitement de données, Google a été source fermée développée en interne et utilisé avec BigTable, Spanner, Millwheel et ainsi de suite pour que nous avons entendu voir encore beaucoup aucune chance d'un produit, le monde open source a évolué à partir de Hadoop, Spark , Apache Flink et d'autres produits, et maintenant ils convergent enfin, se rejoignent.

Pourquoi le lancement de l'open source Apache faisceau?

La principale personne en charge d'Apache faisceau de Tyler Akidau mentionné qu'ils le font dans son idée de blog est:

Pour contribuer à ce monde un modèle facile à utiliser et puissant pour le traitement parallèle des données volumineuses applique à la fois le streaming et le traitement par lots, mais aussi sur une variété de plates-formes différentes peuvent être transplanté.

Cette fois-ci, pourquoi est-ce pas cool publié un autre papier, puis battu en retraite en observant tranquillement du côté de celui-ci? Pourquoi un des partenaires communs publics que nous fournissons le code direct peut manquer? Il y a deux raisons principales:

  • Bien que dans le passé Google a été la source fermée, mais dans le processus de service à la clientèle de cloud, Google a reconnu la grande valeur des logiciels open source, par exemple basé sur Google trois documents établis communauté Hadoop est un très bon exemple. Changement dans la pensée de la naissance d'Apache faisceau est rendu possible;

  • Faisceau sur ce projet, l'une des conditions nécessaires à la réussite, il doit y avoir open source Runner fournir un soutien adéquat pour le modèle du faisceau, de sorte qu'il deviendra un nuage construit soi-même et sur la scène nuage non-Google très concurrentiel force alternative. L'année dernière, Apache Flink a adopté des modèles de poutre dans leur système, cette condition a été satisfaite;

Aucune prestation ne peut pas se permettre tôt, Google fait cela a un motif commercial direct, espère avoir autant de pipeline de traitement de données Apache faisceau peut fonctionner sur le Cloud Dataflow de Google, ne pas oublier c'est un prototype d'Apache Beam. De plus, l'utilisation de l'approche open source pour le guider, il y a aussi de nombreux avantages directs:

  • Le plus grand soutien coureur Apache Beam, son attrait en tant que plate-forme pour la plus grande;

  • Plus les utilisateurs utilisent Apache Beam, les utilisateurs veulent lancer Apache faisceau dans la plate-forme cloud Google plus;

  • processus de développement Apache Beam pour attirer plus de partenaires, plus favorable que la promotion d'un tel modèle de traitement des données;

De plus, les avantages ne seront pas tous attribués à Google, le projet Apache faisceau profitera à toutes les parties concernées. S'il y a une telle couche d'abstraction lors de la construction pipeline de traitement de données portable, il sera plus enclin à nouveau Runner, ils peuvent se concentrer sur l'innovation technologique, de fournir une meilleure performance, une meilleure fiabilité, le transport plus pratique gestion de la maintenance et ainsi de suite. En d'autres termes, ce qui élimine l'API de verrouillage, il a été libéré moteur de traitement, conduira à une plus grande concurrence entre les produits, et en fin de compte jouer un rôle positif dans la promotion de l'industrie.

Google croit est l'avenir du traitement par lots Apache Beam et données processus continu. Cela va créer une variété de Runner un écosystème sain, les laisser en concurrence les uns avec les autres, et permet enfin aux utilisateurs d'obtenir des avantages réels.

Qu'est-ce que Apache faisceau qui?

Dites Apache Beam, premier à parler de Google Cloud Dataflow. Dataflow est un natif de services de traitement de données cloud Google, est un bâtiment, la gestion et l'optimisation des pipelines de données complexes pour la construction d'applications mobiles, le débogage, le suivi et le contrôle des applications cloud de classe de produits. Il utilise une technique Flume et MillWhell dans Google, où Flume pour parallèle efficace de traitement des données, et est utilisé MillWhell le streaming Internet avec un bon niveau de tolérance aux pannes. Cette technique fournit un modèle de programmation simple, il peut être utilisé pour des tâches de traitement par lots et des flux de données. Elle fournit des services de gestion de flux de données peuvent être contrôlées pour effectuer des opérations de traitement des données, le traitement des travaux données peuvent être créés à l'aide du SDK DataFlow.

Apache faisceau lui-même n'est pas une plate-forme de streaming, mais un cadre de programmation unifié, qui fournit le modèle de programmation ouverte et unifiée pour vous aider à créer votre propre pipeline de traitement des données, la mise en uvre peuvent fonctionner sur un moteur d'exécution par lots et diffuser les tâches de traitement. Toutes les questions de faisceau scénarios de calcul convection Refaire un résumé et présenté plusieurs modèles différents pour résoudre ces problèmes, puis mis par ces modèles pour obtenir une langue uniforme, et, finalement, ces programmes peuvent fonctionner sur faisceau sur une plate-forme informatique (tant que la plate-forme appropriée - à savoir Runner obtenir de l'appui du faisceau). Ses caractéristiques sont les suivantes:

  • Unified: pour le traitement par lots et en continu, à l'aide d'un modèle unique de programmation;

  • Portable: il peut prendre en charge des environnements d'exécution multiples, y compris Apache Apex, Apache Flink, Spark Apache et Google Cloud Dataflow et ainsi de suite;

  • Évolutif: il peut être réalisé et partager plus nouveau SDK, IO Connector, opération de conversion bibliothèques;

Faisceau particulièrement approprié pour des tâches de traitement de données parallèles, aussi longtemps que le jeu de données à traiter dans un certain nombre de distinct, mais un petit ensemble de traitement en parallèle sur elle. Faisceau peut également être utilisé pour des tâches ETL, ou l'intégration de données simple. La principale tâche consiste à déplacer des données entre les différents supports de stockage ou de stockage de données, convertit les données en un format désiré, ou importer des données dans un nouveau système.

Faisceau comprend principalement deux éléments clés:

SDK faisceau

Faisceau SDK fournit une interface de programmation unifiée pour les développeurs à l'application supérieure, les développeurs ne ont pas besoin de savoir quelle interface spécifique plateforme Big Data de développement sous-jacente est directement via l'interface SDK Beam, vous pouvez développer le flux de traitement de traitement des données, quelle que soit l'ensemble de données d'entrée est limité à batch ou en continu infini jeu de données. Pour les données d'entrée finis ou infinis, classe faisceau SDK pour utiliser les mêmes performances et la même opération de conversion pour le traitement. Faisceau SDK peut être réalisé dans différents langages de programmation, propose désormais une complète Java, SDK python est encore en développement, nous pensons qu'il y aura plus de langues différentes seront publiées hors du SDK.

Faisceau Pipeline Runner

Faisceau de tuyau utilisateur coureur modèle défini au point par faisceau traduit dans le déroulement du processus sous-jacent de la plate-forme de traitement de données distribué pour supporter l'environnement au moment de l'exécution. Lorsque vous exécutez le programme Beam, vous devez spécifier le type correct du sous-jacent Runner. Big Data pour différentes plates-formes ont différentes Runner. À l'heure actuelle Flink, Spark, Apex et Cloud DataFlow Google a soutenu Runner BEAM.

Il convient de noter que, bien que la communauté Apache faisceau espère bien que tous moteur d'exécution faisceau peut supporter des travaux complets de faisceau SDK défini, mais dans une mise en uvre effective peut pas nécessairement. Par exemple, MapReduce est clairement difficile à réaliser le traitement des flux en fonction Runner et propriétés fonctionnelles connexes. En l'état actuel, il est préférable de soutenir cloud Dataflow fonctionne sur la plate-forme cloud de Google pour le modèle de faisceau, et peut être utilisé seul ou déployé sur un nuage non Google Apache Flink. Bien sûr, d'autres Runner est également en train de rattraper, l'industrie se développe également vers le soutien modèle Beam.

Que ce que nous pouvons faire avec contact intime faisceau-il?

Comme indiqué plus haut, il y a trois aspects principaux:

  • Traitement des données: en utilisant l'existant directement leur propre SDK langage familier, pour définir et mettre en uvre leurs propres procédures de traitement des données conformément au modèle du faisceau;

  • SDK pour atteindre: un nouveau langage de programmation pour mettre en uvre le concept selon faisceau SDK, de sorte que plus tard, nous pouvons avoir plus de choix en termes de langage de programmation;

  • Runner rechercher: la plate-forme de traitement des données existantes distribués en tant que nouveau coureur, l'accès modèle Beam.

Beam est comment faire?

Avant de commencer toute conception, vous devez d'abord déterminer le problème, faisceau ne fait pas exception.

1. données

Type de traitement de données distribuées de données à traiter peuvent généralement être divisés en deux catégories, et un ensemble de données limité flux de données illimité. ensemble limité de données, comme un fichier HDFS, HBase une table et ainsi de suite, et il est déjà en avance sur les données, le général a également été persistante et ne disparaîtra pas tout d'un coup, ne changera pas. Les flux de données illimitées, comme kafka flux sur le flux de journal du système ou d'obtenir à partir du flux API Twitter, et ainsi de suite, les caractéristiques de ce type de données est que les flux de données en dynamique, sans fin, pas toute la persévérance.

En général, le cadre est conçu pour le jeu de données traitement par lots limité, cadre de traitement de flux conçu pour le traitement d'un flux de données illimité. ensemble limité de données peut être considérée comme un cas particulier de flux de données infini, les données de traitement du point de vue logique, les deux pas différents.

2. Temps

Temps processus se réfère au traitement distribué de données dans le laps de temps de l'événement de temps est le moment où les données résultantes. Ces deux sont généralement différentes, par exemple, flux des tâches informatiques pour un traitement de données micro-Bo, un 2016-06-01-12: 00:00 publié par des retards de transmission du réseau de micro-blogging peut en 01/06/2016 -12: 01:30 flux avant d'entrer dans le système de traitement. Les travaux par lots sont généralement plein montant du calcul des données, moins préoccupé par les données d'attribut de temps, mais pour la tâche de traitement de flux, car le flux de données est implacable sans fin, impossible de calculer le montant, est généralement une fenêtre de données a été réalisée le calcul, pour la plupart des tâches de traitement courant, conformément à la division de la fenêtre de temps, est probablement la plus commune exigence.

3. lecture aléatoire

Le flux flux de processus de traitement de trames de données, l'ordre d'arrivée de ses données ne peut pas être dans un ordre strict de temps Event-Time. Si la fenêtre de temps est définie en fonction du temps de processus, les données de séquence d'arrivée est données séquentielles, et donc il n'y a pas de trouble de problème. Mais pour l'heure de l'événement basé fenêtre temporelle définition, il peut y avoir le cas avant dans le message après un message après votre arrivée à l'heure, qui peut être très courant dans les sources de données distribuées. Dans ce cas, comment déterminer les données en retard, le traitement des données et comment est en retard souvent question très difficile.

modèle de données objet de traitement faisceau est un temps illimité flux de données brouillées, ou l'ordre temporel n'est pas considéré ensemble limité de données peut être considérée comme un cas particulier d'un flux infini de données brouillées.

Ci-dessus, dans lequel la ligne en pointillés est la meilleure, il représente le temps de traitement et le temps d'événement sont les mêmes, est en fait une ligne rouge, également appelé la ligne d'eau (Filigrane), il est généralement calculé par un algorithme heuristique.

Suivant abstraites quatre questions spécifiques de la question:

A: Qu'est-ce que vous l'informatique, le traitement des données est ce type de conversion de données, la polymérisation ou les deux. Par exemple, Somme, ou Rejoindre modèle de formation d'apprentissage apprentissage machine et ainsi de suite. Pipeline spécifiée par l'opérateur dans le SDK Beam. Figure:

B: Où dans le temps de l'événement, le calcul des données dans quelle gamme? Par exemple, sur la base d'une fenêtre temporelle du processus temps? Sur la base de la fenêtre Event-Time du temps? Fenêtre coulissante, et ainsi de suite. Pipeline est spécifié par une fenêtre dans le kit de développement de faisceau:

C: Lorsque le temps de traitement, lorsque la sortie calculée? Ici, la mise en place d'un mécanisme de déclenchement, Trigger a décidé lors de lancer des calculs, l'émission trop tôt une partie des données est perdue, la perte de précision, ce qui fête de lancement retardé trop longtemps, et thésauriser de grandes quantités de données, lorsque le niveau d'eau par Trigger ligne déterminée, désignée par le pipeline au niveau de l'eau et de la bascule dans le SDK Beam.

D: Comment les améliorations concernent, comment la fin du traitement des données? Par exemple, le calcul des données d'incrément de sortie en retard, ou les données tardives les données de résultat de calcul est calculé et les résultats de sortie combinés saké fenêtre. L'accumulation dans les faisceaux SDK spécifié par le.

Lorsque le modèle de faisceau « WWWH » quatre dimensions abstraire forment le SDK Beam, aux utilisateurs de créer des données de traitement logique métier à base de faisceau SDK, chaque étape il suffit d'appeler ces quatre dimensions selon les besoins d'affaires spécifiques pour générer API de données distribuées pipeline de traitement, et de soumettre les moteurs d'exécution spécifiques. « WWWH » abstrait seul centre d'intérêt à quatre dimensions sur la logique métier lui-même, et comment effectuer une tâche distribuée n'a rien à voir.

Amis de vues

Avec le développement continu de traitement de données distribuées, le traitement des données distribuées nouvelles technologies est constamment élevé, l'industrie a émergé un nombre croissant de traitement de données distribuées cadre, dès le plus jeune Hadoop MapReduce, la Spark Apache, Apache Storm, et plus récemment Apache Flink, Apache Apex et ainsi de suite. Le nouveau cadre de traitement distribué peut apporter des performances plus élevées, plus puissant, faible latence, etc., mais l'utilisateur passe au coût du nouveau cadre de traitement distribué est également très importante: la nécessité d'apprendre un nouveau cadre de traitement de données et réécrire toute la logique métier.

Des idées pour résoudre ce problème consiste en deux parties, tout d'abord, vous avez besoin d'un paradigme de programmation, capable d'unifier et de normaliser les besoins de traitement de données distribuées, par exemple, a besoin d'un traitement par lots unifié et le traitement courant. En second lieu, afin de générer une tâche de traitement de données distribuées doivent être en mesure d'effectuer sur le moteur d'exécution distribuée respective, l'utilisateur peut effectuer librement de moteur de commutation et de l'environnement d'exécution d'une tâche de traitement de données distribuées. Apache faisceau précisément pour résoudre les problèmes ci-dessus soulevée.

Comme les principaux promoteurs du projet Apache faisceau Tyler Akidau a déclaré:

« Pour Apache faisceau terminé avec succès la migration, nous devons avoir au moins un nuage construit soi-même dans le déploiement de cloud non Google, il peut avoir assez concurrentiel Runner par rapport à Google Cloud Dataflow. Comme le montre la matrice de la capacité du faisceau, se rencontrent Flink nos besoins. Avec Flink, poutre est devenu une plate-forme véritablement compétitive dans l'industrie ".

À cet égard, Kostas Tzoumas Artisan données dans son blog, a déclaré:

Lorsque « Google leur SDK Dataflow et Runner a fait don à l'incubateur Apache pour devenir projet Apache Beam, Google espère que nous pouvons aider à remplir Flink Runner, et de devenir un nouveau committers de code de projet et les membres PMC, nous avons décidé de soutenir pleinement, parce que nous croyons que: 1, pour le traitement des flux et le lot modèle de faisceau pour toute l'architecture de référence future; 2, Flink il est une plate-forme pour un tel traitement de données est exécutée après la formation du faisceau, maintenant Flink est devenu en dehors de la course nuage programme Google Beam. la meilleure plate-forme. nous croyons modèle de faisceau pour le modèle de programmation de traitement de flux de données et le traitement par lots des meilleurs. nous encourageons les utilisateurs à adopter ce modèle pour mettre en uvre de nouvelles procédures fera avec l'API ou API faisceau Flink DataStream ".

Le cadre actuel de traitement des données de flux de courant Flink, Spark, Apex et Cloud DataFlow Google ainsi avec le soutien du Runner Beam.

Écrit dans la dernière

« Dans la société Google a personne n'utilise le MapReduce »! La principale personne en charge de Google dit nuage Mete Atamel. Google croit est l'avenir de l'Apache Beam et le traitement des flux de données par lots. modèle Apache faisceau pour les données illimitées de traitement des flux de données sont brouillées abstraction très élégant, « WWWH » quatre dimensions description du traitement des données est très claire et raisonnable, le modèle unifié faisceau de flux de données illimité et un ensemble limité de données mode de traitement, mais aussi effacer le paradigme de programmation pour la manipulation des données flux de données illimité, l'élargissement du champ d'application du système de traitement des flux d'affaires peut être appliqué. Avec le succès d'Apache hachure Beam, comme de plus en plus les langages de programmation disponibles, des données de plus en plus distribués plate-forme de traitement pour soutenir le modèle Beam, nous pouvons réellement profiter Imaginez un avenir meilleur.

Aujourd'hui, nombre recommandé

Big Data pour les sujets

Nous nous concentrons sur les données et l'apprentissage grande machine, publier des articles de haute qualité, des cas techniques et d'autres originaux chaque jour un flux régulier de marchandises sèches. Plus classe de micro communautaire, en espérant que vous serez ici pour partager la technologie de pointe, des échanges de pensée profonde.

WeChat ID: BigdataTina2016

texte recommandé aujourd'hui

Cliquez ci-dessous pour lire l'image

Baidu traitement des billions système des données en temps réel de poids moyen de la troisième génération d'araignée derrière

« TFBOYS » « nouvelles » Wang Yuan 190322 petite à grande main monsieur, le respect pour les femmes à maintenir de bonnes jeunes femmes
Précédent
Huang parler il y a quatre ans le mariage échoué, permet aux utilisateurs de répondre à la sympathie de son ex-mari
Prochain
Pas étonnant qu'il était à Hong Kong pendant 15 ans, il n'a pas l'acteur, en colère abrite dix milliards d'hériter des biens de la famille
190322 Wang Yuan de petit à grand respect pour les femmes la main homme à maintenir de bonnes jeunes femmes
Brûler! Hollywood « bataille » grande exposition de chaque nouvelle carte « Hellboy » coming out « A Lita »
épidémie de grippe aviaire en arrière-plan technique, l'apprentissage en profondeur comment développer la tendance du framework open source?
Nintendo a lancé le "X Mario Pikachu" périphérique
Âgé de 65 ans Pu Cunxin situation pénible, la peau lâche ne reconnaissait pas sa fille est devenu président dominateur
190322 Chen Linong est arrivé à Taipei a enlevé son manteau deux mètres grandes jambes profiter pleinement
Top model Sui Il séchage selon fitness, quand vous voyez le chiffre réel, les utilisateurs ont pas calme
DC drame « Titanic » a hérité du manteau de la violence Nolan Batman Dark, comme beaucoup des quatre personnages principaux
tests unitaires automatisés méthode d'atterrissage, de haute qualité et le déploiement efficace n'est pas difficile!
Bao petite charge, comment faire? poussoir stockage d'énergie portable iFORWAY
Xinzhi Lei Zhai jour répondre Pro suspect avec amour, mots pour montrer son caractère dominateur direct