l'architecture de plate-forme informatique Ctrip temps réel et la pratique Shu DataPipeline

Cet article de Ctrip grand profils de plate-forme de données, conception de l'architecture et le processus de mise en uvre pour les atteindre et est intervenu pour remplir la fosse à ciel, détaillé en temps réel calcul des scénarios d'applications, ainsi que des plans futurs dans cinq domaines énoncés architecture de plate-forme Ctrip et calcul en temps réel de la pratique, et je espère nécessité de construire la société de plate-forme de données en temps réel et ont les élèves apprennent.

Tout d'abord, l'architecture globale de la grande plate-forme de données Ctrip

Ctrip grande structure de plate-forme de données est divisé en trois couches:

Couche d'application: Plat Zeus (divisé en système de planification, le système de transmission de données Datax, système de données de base, les systèmes de qualité des données), plateforme de recherche (système de rapports ArtNova, la requête Adhoc), l'apprentissage machine (développé à base tensorflow, étincelle comme cadre ouvert, nuage internet le GPU basé réalisation K8S), la plate-forme de calcul en temps réel Muise;

Couche intermédiaire: Sur la base open source grande infrastructure de données dans un cadre de stockage et de calcul distribué, cadre informatique en temps réel;

Offline principalement basé Hadoop, HDF stockage distribué, calcul distribué hors ligne sur la base de la ruche et Spark, le stockage de la base KV HBase, Presto Kylin et un système de notification et de Adhoc;

calcul en temps réel est basé sur le système de mise en file cadre sous-jacent de message encapsulé Kafka Hermes, Qmq Ctrip de la file d'attente de messages RECHERCHE, système commercial de l'ordre Qmq est principalement utilisé pour faire en sorte que aucune donnée ne soit perdue pour créer la file d'attente de messages.

En bas: Ressources de surveillance et le fonctionnement et la surveillance de l'entretien, le fonctionnement automatique et système d'entretien est divisé en grande trame de données de surveillance installation, grande surveillance du trafic de données.

En second lieu, la conception de l'architecture et de mise en uvre

1.Muise Plate-forme Présentation

Qu'est-ce que 1) Muise est

Muise, tiré de la mythologie grecque, les muses du nom littéraire, plate-forme Ctrip pour l'analyse des données en temps réel et le traitement; Muise plate-forme sous-jacente basée sur la file d'attente de messages open source et le système de traitement en temps réel JStorm, Spark en streaming et Flink, pour soutenir la deuxième étape, même est en continu le traitement de retard milliseconde données.

2) fonction Muise

Source de données: Hermes Kafka / Mysql, Qmq;

Traitement des données: Fournir Muise JStorm / Spark / FlinkCore API Hermes ou les données de consommation Qmq, en utilisant la Jstorm sous-jacente, Spark ou données de process en temps réel, et de fournir leur propre package API aux utilisateurs. API d'amarrage tous les systèmes source, l'utilisateur directement;

Gestion des travaux: Portail prévoit JStorm, Spark en streaming et la gestion des opérations Flink, y compris de nouveaux emplois, paquet jar de téléchargement et la production éditoriale et d'autres fonctions;

Suivi et alerte: CADRE DE RÉFÉRENCE Metrics Jstorm, Spark et Flink ont fourni un appui pour des mesures personnalisées, les paramètres de gestion des centres d'information, opérations d'accès et de surveillance du système d'alarme pour assurer un suivi et un soutien complets d'alarme aident les utilisateurs à surveiller le travail la première fois en cas de problème.

Statut plateforme 2.Muise

plate-forme d'état:

Jstorm 2.1.1, 2.0.1 Spark, Flink1.6.0, Kafka 2,0;

Taille de cluster:

13 pôles, la machine 200 + 150 + Jstorm, 50 + fil, 100 + Kafka;

Échelle de l'opération:

11 secteurs d'activité, 350 + emploi Jstorm, 120 + SS / Flink emploi;

Taille du message:

Sujet 1300+, incrémentale 100T + PD, Avg 200K TPS, Max 900K TPS;

retard du message:

Hermes 200ms ou moins, à l'intérieur de 20ms tempête;

Un message de réussite Handling:

99,99%.

Evolution de la route de la plate-forme 3.Muise

2015 Q2 ~ 2015 Q3: Tempête sur le développement de la plate-forme de calcul en temps réel;

2016 Q12016 Q2 ~: migration tempête JStorm, constituée StreamCQL;

2017 Q1 Q2 ~ 2017: Spark en streaming la recherche et l'accès;

Q32017 ~ 2018 Q1: Flink d'enquête et d'accès.

l'architecture de la plate-forme 4.Muise

1) Muise Plate-forme d'architecture

Couche d'application: Portal Muise soutient principalement la tempête et Spark en streaming types d'emplois, le soutien nouvel emploi, version de pack de pot, l'opération et l'arrêt d'une série de fonctions;

Couche intermédiaire: Infrastructure fait à l'ensemble sous-jacent, pour fournir aux utilisateurs en fonction Storm, Spark, Flink API de services correspondant et aspects;

En bas: Hermes & Qmq est la source de données, Redis, HBase, HDFS, DB et similaires en tant que stockage de données externe, Graphite, Grafana, ES est utilisé principalement pour la surveillance.

2) Procédé de calcul en temps réel Muise

fin du producteur: Les utilisateurs sont valables pour le sujet de Kafka, et écrit ensuite les données en temps réel dans Kafka;

Portail fin Muise: Nous fournissons des API basée sur l'utilisateur de faire le développement, le développement futur de la configuration complète via le portail Muise, télécharger et commencer le travail, le travail a commencé, paquet de pot sera distribué à chaque donnée de consommation Kafka sous-munitions correspondantes;

fin de stockage: Une fois les données réécrites au consommateur peut QMQ ou Kafka, peut aussi être stocké à un système externe Redis, HBase, HDFS / Ruche, DB.

La conception de la plate-forme - facilité d'utilisation

Tout d'abord: En tant que plate-forme conçue pour être le premier point est simple à utiliser, nous offrons un portail complet, il est facile pour les utilisateurs de gérer leurs nouveaux emplois, faciliter le développement de l'emploi en temps réel la première fois pouvoir en ligne;

deuxième: Nous emballons beaucoup d'API de base, En charge plusieurs ensembles de temps réel cadre informatique:

Soutien HermesKafka / MySQL, QMQ;

Jstorm intégrée, Spark Streaming, Flink;

Ressource de commande de fonctionnement;

Fournir DB, Redis, composants de sortie Hbase et HDFS;

Sur la base d'un certain nombre d'opérations système métrique métrique intégré sur mesure effectué une surveillance d'alerte précoce;

Les utilisateurs peuvent personnaliser métrique pour la surveillance et l'alerte précoce;

Une fois et appuyer AtLeast Exactement Une fois la sémantique.

La plate-forme mentionnée ci-dessus conçu pour être facile à utiliser, par exemple la plate-forme tolérante aux pannes suivantes, assurant que les données ne doivent pas se tromper.

6. plate-forme - Tolérance aux pannes

Jstorm: Basé sur le mécanisme Acker assure au moins une fois;

Spark en streaming: Sur la base Checkpoint obtenir exactement une fois, basée sur la mise en uvre de Kafka Offset retours en arrière au moins une fois;

Flink: D'après la phase Flinktwo + commit Kafka 0.11 support transactionnel pour atteindre une seule fois.

Une fois 7.Exactly

1) Approche directe

La plupart prennent Spark en streaming la consommation actuelle Kafka, puis, utilisent manière approche directe:

avantages: Chaque consommation record de lot offset, les travaux peuvent être compensés par retours en arrière;

inconvénients: stockage de données asynchrone et le stockage de décalage:

les données enregistrées avec succès, les temps d'arrêt de l'application, le décalage non enregistré (entraînant la duplication des données);

décalage enregistré avec succès, les temps d'arrêt de l'application, les données de sauvegarde ayant échoué (entraînant une perte de données);

2) CheckPoint

avantages: L'état par défaut de l'opération d'enregistrement pour chaque lot les données sources peuvent être récupérées à partir du répertoire vers le bas cp;

inconvénients:

1. non garantis 100% ExactlyOnce;

https://www.iteblog.com/archives/1795 ne garantit pas exactement une fois décrit la scène;

https://issues.apache.org/jira/browse/SPARK-17606 il se produit une perte lorsque le bloc doCheckPoint;

2. Activez l'impact cp apporter des performances supplémentaires;

3. Des changements logiques de fonctionnement en streaming ne peuvent pas être récupérés à partir de cp.

scène applicable: Plus scène de calcul de l'état approprié;

utilisation: Programme recommandé lui-même est stocké compensé, lorsque les temps d'arrêt se produit, si la logique de code d'allumage n'a pas changé, selon la création du répertoire de point de contrôle StreamingContext. En cas de changement, selon créer un contexte pour réaliser leur CONSERVE décalage et la mise en place d'un nouveau point de contrôle.

8. la conception de la plate-forme - la surveillance et l'alarme

Comment la première fois aux utilisateurs d'aider à trouver des emplois est une question priorité absolue.

Surveillance de cluster

Surveillance du serveur: examen des indicateurs mémoire, CPU, disque IO, Net IO;

surveillance Plate-forme: Ganglions;

Job Monitor

Système métrique natif basé sur le cadre calculé;

L'état du travail de réaction personnalisée Metrics;

Collection de mesures natives et personnalisées pour le suivi et d'alerte;

Stockage: graphite montrer maintenant: Grafana alarme: AppMon;

Nous en sommes maintenant beaucoup de mesures personnalisées parmi les plus fréquents sont les suivants:

Fail: Le temps périodique, Jstorm le nombre de traitement de données a échoué, la tâche Spark Numéro Fail;

ack: Le temps périodique, la quantité de données traitées;

Lag: Le temps périodique, la consommation de la temporisation de génération de données intermédiaires (kafka 2,0 sur la base vient bornTime).

Ctrip a développé son propre système d'alarme, les alarmes basées sur des règles font après que le système de substitution Metrics. travail Kanban fait par des indicateurs de suivi liés à la surveillance et l'examen, nous indexe Flink Metrics comme plus préoccupé, tous importés dans la base de données de graphite à l'intérieur, puis faire le spectacle sur le front Grafana. En surveillant les panneaux d'affichage de fonctionnement, on peut voir directement Kafka à Flink Delay (GAL), correspond aux données provenant de l'exploitation de la consommation Flink, le retard intermédiaire est de 62 ms, la vitesse relativement rapide. En second lieu, nous surveillons la vitesse de chacun pour obtenir des données de Kafka. Depuis l'acquisition de données de Kafka est basée sur de petites pièces à acquérir, nous avons mis la quantité de données à chaque fois 2 billions de traction. Kanban peut être surveillée en surveillant un travail à chaque prise de données de temps de retard moyenne est de 25 ms tiré de Kafka, Max est de 760 millisecondes.

Ensuite, nous avons posé le pied sur parler de certains de la fosse au cours des dernières années et la façon de remplir la fosse.

En troisième lieu, et de la fosse à gradins fosse remplie

Pit 1: HermesUBT grande quantité de données, de nombreuses informations de points Enfoui, les services et le client sont sous une énorme pression;

solution: Fournir une opération shunt unifiée, les données sont détournées vers un sujet différent en fonction des règles spécifiques et la configuration.

Pit 2 : Kafka ne peut pas garantir l'ordre mondial;

solution: Si, pour forcer une scène mondiale, en utilisant une seule partition, si elle est partiellement ordonnée dans un cas, pour un champ en fonction de la Hash, la partition interne ordonnée assurer.

Pit 3 : Kafka pas les données à une certaine période de temps en fonction du temps précis;

solution: Plate-forme assure un filtrage, le temps de filtration est plus tôt que les données de temps de jeu (données après kafka 0,10 chacune avec son propre horodatage, de sorte que le problème après la mise à niveau kafka naturellement résolu).

Pit 4 : Dans un premier temps, Ctrip Tous Spark Streaming, opérations Flink sont exécutés dans le groupe ci-dessus l'hôte, est un grand groupe Hadoop est actuellement plusieurs milliers échelle, en temps réel et hors ligne sont en tissu mixte, une fois un excellent travail quand hors connexion l'impact de l'emploi en temps réel, d'autre part des clusters Hadoop font souvent une mise à niveau, il peut redémarrer le nom du nud ou Node Manager, qui peut conduire à parfois le travail se bloque;

solution: Nous utilisons un déploiement séparé, mis en place un groupe distinct en temps réel, autonome travail en temps réel. Hors ligne aller en ligne, cluster retour en temps réel de réel, en temps réel avec une seule course Spark streaming travail fil, exécutez une des opérations hors ligne spéciales hors ligne.

Lorsqu'ils sont déployés séparément, rencontrent de nouveaux problèmes, un certain besoin d'aller hors ligne pour travail en temps réel faire le travail ou de faire fonctionner une partie de la fonction d'inscription, c'est également nécessaire d'accéder aux données du groupe hôte. Cela équivaut à un problème d'accès à travers le cluster.

Pit 5 : Groupe Hadoop en temps réel à travers le cluster pour accéder au groupe hôte;

solution: configuration hdfs-site.xml ns ns-prod, à double espace de noms, respectivement, le point au groupe d'hôte local;

configuration Spark spark.yarn.access.namenodes ou hadoopFlieSystems

6 hang : Que Jstorm Storm rencontrer des problèmes ou prendre un CPU preemption, quand vous arrivez sur un gros travail, en particulier le genre de consommation CPU particulièrement puissant, je pourrais lui donner un travailleur indépendant, une unité centrale de traitement de base, mais il Enfin, il est possible de me donner d'utiliser trois ou même quatre;

solution: Activer cgroup utilisation cpu limite.

Quatrièmement, les scénarios d'application

1. Les statistiques des rapports en temps réel

rapports en temps réel et les statistiques montrent également une Spark scène utilisation en streaming plus de données peuvent être basées sur le temps de processus statistique, temps de l'événement peut également être basé sur les statistiques. En raison de leur Spark en streaming différents lots de travail peut être considéré comme l'un de la fenêtre de défilement, une fenêtre séparée qui contient les données pour des périodes multiples, qui utilise SparkStreaming il y a des restrictions fondées sur les statistiques de temps de l'événement. En règle générale façon plus commune est une valeur d'accumulation statistique dans différentes échelles de temps pour chaque lot et introduit dans un système externe, comme les ES, puis en fonction du temps de faire une polymérisation complète de la deuxième valeur cumulée de la valeur finale obtenue lors de la polymérisation montrent le rapport. La figure suivante montre l'IBU Ctrip base en temps réel Kanban Spark mise en uvre en streaming.

2. en temps réel Numéro d'entrepôt

1) Diffusion Spark près de stockage de données en temps réel

Il y a maintenant toutes sortes d'outils données de consommation Kafka en temps réel et, éventuellement filtrés atterrissage au système lavé de stockage correspondant, tels que: Camus, comme Flume. Par rapport à ces produits, Spark en streaming réside l'avantage d'abord et avant tout pour soutenir la logique de traitement plus complexe, d'autre part le système de planification des ressources à base de fil permet l'allocation Streaming Spark des ressources plus flexibles et adoption par les utilisateurs Spark streaming des données en temps réel est écrit à HDFS ou l'écriture ruche d'aller à l'intérieur.

2) sur la base de diverses règles pour détecter la qualité des données

Sur la base Spark Streaming, quantité de données de fonction personnalisée métrique de données, le nombre de champs, le format de données des données et le contrôle de la qualité des données répétées et de surveillance.

3) sur mesure métrique basée sur l'alerte rapide en temps réel

Identifier des règles basées sur les paquets métriques que nous offrons système d'enregistrement, puis effectuer un contrôle chaque lot en fonction de ces règles, renvoie un résultat. Les résultats seront basés sur évier métrique pour cracher, cracher sur la base des résultats d'une surveillance des paramètres font. Nous utilisons le modèle actuel Flink charge prévisions make tensorflow en temps réel. Les informations d'alarme de respect des délais de base de données peut lui faire rapport dans les deux secondes, une fois qu'il atteint une très bonne expérience utilisateur.

Cinquièmement, la planification de l'avenir

1.Flink sur K8S

Il y a un certain nombre de différents cadres de l'informatique au sein de Ctrip, l'informatique en temps réel, l'apprentissage machine, ainsi que des calculs hors ligne, et donc la nécessité d'un cadre sous-jacent unifié pour la gestion, à l'avenir Flink déplacé vers le K8S, unifié la gestion des ressources et le contrôle.

accès plate-forme SQL 2.Muise Flink

Bien que l'accès à la plate-forme Muise Flink, mais les utilisateurs ont toujours un code écrit à la main, nous avons développé une fonction de plate-forme en temps réel, les utilisateurs ne doivent écrire SQL, qui est basé sur le modèle SQL Flink qui peuvent être collectées ou les fonctions utilisées les utilisateurs ont besoin en temps réel. Après Possèdera plate-forme temps réel avec la plate-forme de calcul en temps réel pour la fusion, les utilisateurs ont seulement besoin de SQL d'écriture peuvent enfin réaliser tous le travail en temps réel à atteindre.

3.Jstorm CGroup pleinement opérationnel

Dans le cadre des raisons historiques actuelles que beaucoup d'emplois en cours d'exécution dans Jstorm ci-dessus, ce qui entraîne une répartition inégale des ressources, le plus tard sera entièrement activé CGroup.

4. modèle de formation en ligne

Ctrip certains ministères ont besoin modèle de formation en ligne en temps réel, grâce à une formation suivie modèle Spark, puis utilisez le modèle Spark en streaming, faire une interception en temps réel ou le contrôle, le contrôle des applications et d'autres scènes dans le vent.

Wen | Guo plate-forme PAN-qing Ctrip pour les grandes données en temps réel informatique plate-forme leader

39 ans d'entretien Zhang Jingchu sont très bons, l'usure Sundresses peau lisse blanche, petite taille que la paume
Précédent
la pratique Flink seulement la volonté du produit
Prochain
jeu Mahjong sur la ligne deux mois, la société a grimpé en flèche à plus de 20 millions qui créent « mythe de la richesse »
Il avait joué « comme Yi Chuan » instrument élégant, vêtu d'un costume à carreaux et jouer sous les vêtements portés disparus, avec les cheveux courts de longueur d'épaule très belle
Ctrip le comportement des utilisateurs dans les systèmes en temps réel pratique
Savoir Zhejiang | M. Li Lu Weiding fois apparu auto Shanghai exposition musée de voitures de luxe, en fait ......
Coulée Nazha vraie fille pull robe bracelet retour aux États-Unis 17 ans, mais des amis ridicule: le visage est trop grand
Serie A Review: La Qiao bouleversé négative Chievo, Bologne, Turin triomphe Spahr
Les hommes ne pleurent pas plus d'une seconde avant de sauter la seconde suivante: me tirer!
[Sec] Lot à l'échelle: comment former le réseau de neurones plus rapide profondeur
Demi-pension: Feng Sui Weijie fait frais menaces dépanneuse, 0-0 partie Chongqing
Officiel: la vague de quart de finale de la Ligue des Champions monde Meixineiqie a été élu meilleur buts
18 ans, a été champion « My Hero », porter des vestes courtes avec un pantalon slim, ressemble adolescent exquis
Apprentissage en profondeur combat portail (a): Comme algorithme Prisma pour générer le même style de portrait Van Gogh