HBase pratique dans Baidu scène de surveillance intelligente

En introduisant Baidu série à grande échelle de stockage de données de séries chronologiques, probablement lecteurs Baidu système de contrôle intelligent de Noé ne TSDB plus étrange, il est principalement utilisé pour stocker le système de surveillance Noah Les données relatives aux indicateurs de synchronisation Y compris, mais sans s'y limiter, la disponibilité d'indicateurs de matériel et des logiciels, des paramètres d'utilisation des ressources et des indicateurs de performance. Tels que « Baidu à grande échelle de stockage de données de séries chronologiques (deux) | sélection de la mémoire et la conception du modèle de données, » l'article dit, Noé-TSDB HBase est basé sur le stockage sous-jacent basé sur la recherche et le développement indépendant, et son excellente performance est indissociable de la contribution de HBase . Aujourd'hui, le discours principal sur la scène Baidu surveillance intelligente Hbase expérience pratique pertinente, expliquer brièvement HBase.

HBase Présentation de l'architecture

HBase est basé sur Java, open source, stockage non relationnelle, orientée colonne de grande base de données de stockage de données distribué et évolutif. groupe HBase se compose de HMater et RegionServer composé de deux rôles, comme les installations de stockage sous-jacents à HDFS, Zookeeper aider à gérer le cluster. L'architecture comme indiqué ci-dessous:

Figure 1 Schéma d'architecture HBase

Un rôle bref dans les composants connexes Hbase:

  • HMaster

HMaster est l'ensemble du cluster cerveau , Responsable de l'exploitation des tableaux de données, l'équilibrage de charge et la récupération cluster faute de gestion du cluster.

  • RegionServer

Tableau HBase en unités divisée en un nombre débris Chaque segment est appelé une région. La région a été affectée à la gestion RegionServer. Après le processus de lecture, où les données cible RegionServer, l'interaction directe avec le client RegionServer lu et données d'écriture.

  • Zookeeper

Hbase en tant que systèmes distribués à grande échelle, le rôle Zookeeper est crucial. Tout d'abord Zookeeper comme solutions HMaster HA assurer qu'il y ait au moins un HMaster en état de marche. Zookeeper suivi par le mécanisme de rythme cardiaque d'exploration vivant RegionServer, quand RegionServer faute informe rapidement le dépannage HMaster travail. Enfin Zookeeper sauver les méta-informations META global de maintenance de table de routage, et lorsque le client pour la première fois à interagir avec HBase groupe, vous devez obtenir les données où le RegionServer cible par le tableau META.

Ce qui précède brève introduction à l'architecture de l'information de base et diverses composantes de HBase, ici et partager quelques problèmes typiques rencontrés dans le programme et optimiser l'apparence de l'utilisation HBase à la plus grande base de données de synchronisation de la scène Baidu.

Les enjeux

Nous avons tous l'effet fût de savoir, pour le système TSDB, où les points chauds Région RegionServer affecte toute la plus courte capacité « seau » morceau de bois. HBase Idéalement, toutes les demandes doivent être uniformément répartie sur l'ensemble Région tout RgionServer lorsque Région particulier a reçu un nombre important de demandes de lecture et d'écriture plus que d'autres région, la région où il est susceptible de devenir un point chaud.

l'information figure 2 RegionServer (dans cette source non-réseau de la figure Baidu données réelles)

Noé-TSDB avait rencontré la conception de la table des métadonnées de surveillance initiale résultat déraisonnable dans un point chaud. A que les étudiants reçoivent de la recherche du temps Noah-TSDB file d'attente Congestion Module d'écriture alarme d'affaires, a enregistré une croissance significative de la même période de HBase d'accès anormal du système de surveillance Noah. RegionServer HBase respective fréquemment dans le GC, le réseau d'E / S et E / S disque intensive, l'opération de demande de file d'attente pour être exécutés en vrac charge sévère était significativement plus élevée que les autres RegionServer. Afficher les journaux ont trouvé un grand nombre d'accès à la demande RegionServer anormale à la même région: « TSDB-meta, *** 1. ». La position initiale est due Région La charge est trop élevée Résultant dans le RegionServer il devient chaud, conduisant à une diminution de débit du système, la demande en amont écriture empilage de modules.

Indice de surveillance TSDB-meta est utilisé pour stocker le nom du tableau périodique et d'autres informations méta, le tableau représente la ligne rouge qui ont une quantité de remplissage de données dépasse un niveau normal, la structure de table est comme suit:

Tableau 1 Tableau TSDB-meta original

la structure de stockage analyse ci-dessus, nous pouvons savoir:

  • La même ligne avec une méta-informations d'index de surveillance objet contrôlé (namespace) sera stocké dans le tableau HBase.
  • Nombre différent de différents indicateurs objet surveillé, la taille se traduira par des lignes non uniformes.
  • données HBase est fragmenté en unités de données stockées dans chaque ligne de la même région, lorsque le nombre de suivi des indicateurs d'une rangée de stockage est bien supérieur au niveau normal, la banque est susceptible de devenir un point chaud.
  • En résumé, lorsque l'individu a objet surveillé Un nombre excessif d'indicateurs de suivi Lorsque, TSDB-meta problèmes chauds peuvent se produire. En même temps, nous vérifierons par la découverte, les indicateurs de suivi deviennent des objets de surveillance point chaud ont le nombre est d'environ 20 fois le niveau normal, encore confirmé la cause du dysfonctionnement.

    Accédez à la cause, nous avons décidé deux façons de résoudre ce problème. D'une part, Les indicateurs statistiques réguliers pour surveiller le nombre d'objets appartenant à la , Pour détecter en raison de la configuration anormale et surveillance de l'utilisation irrationnelle de la surveillance excessive des objets individuels ont conduit à des indicateurs de suivi. Un deuxième aspect, la configuration de TSDB-meta table de transformation, les données d'origine est modifié par la distribution de la colonne Développez rangée de tuiles les données de tirage complet, en utilisant le mécanisme HBase ligne de tranche pour atteindre l'état d'équilibrage de charge automatique. Le premier aspect est principalement intervention manuelle de l'utilisation abusive du niveau opérationnel. Aujourd'hui, les principaux axes du second aspect.

    • TSDB-meta tableau transformation Schéma

    Ce qui précède décrit l'idée générale de la transformation structurelle de la table, une seule rangée de données est trop volumineux pour éviter les points chauds. Nous surveillerons les informations du nom de la cible et le suivi des indicateurs clés ensemble comme une ligne, ne laissant qu'une seule restante pour stocker des informations d'index, afin d'éviter les problèmes à chaud en raison d'une seule ligne de données est trop grande.

    Tableau 2 après le tableau d'optimisation TSDB-meta

    • Pré-partition

    Après optimisation TSDB-méta table, nous avons constaté que l'environnement de production pour stocker les données tableau TSDB-données il y a aussi des questions d'actualité. Indicateur TSDB-données sont utilisées à des valeurs de surveillance mémorisées dans le tableau, le milieu de production est basée sur la division de la table d'intervalle de temps, tous les deux jours les données sont stockées dans une table. données Ts_uid clés de ligne à partir des données de caractéristiques après une base de temps variable et la composition timestamp_base de hachage, en fonction des caractéristiques des lignes triées lexicographique de clés, des données de surveillance différentes pour un index de hachage différent stockage Région HBase utilisant le même objet surveillé pour les données d'index, à l'effet de l'optimisation des requêtes. Étant donné que le trafic quotidien tableau TSDB-données de la base haute, quand un certain nombre d'indicateurs pour surveiller les objets qui ont supérieur à la moyenne, alors les indicateurs de suivi de l'objet haute probabilité surveillance seront affectés à la même région, ce qui dans la région excessive , dans un chaud, le cluster divisé charge surdimensionné d'équilibrage région pour maintenir le statut. opération de division fréquente utilise beaucoup de ressources et d'affecter le débit de RegionServer. Pour résoudre le point chaud parce que la région est trop grande, nous utilisons la table de données pré-partitionné Méthode.

    Lorsque les données de TSDB dans le tableau pré-partition, nous avons constaté que l'effet est atteint que par le nombre spécifié de pré-partition Région n'est pas idéal, car il y aura un problème d'attribution des créneaux horaires inégale et le montant réellement écrit. l'espace de table de données HBase est uniformément réparti en octets au lieu de rangée de touches sont réparties en fonction de la quantité de données effectivement stockée. Comme on le voit ci-dessous, les données présentées dans les carrés rouges représentent la mémoire réelle, les carrés blancs représentent des pas de données réelles.

    Figure 3 Région partitionne le disque brut

    Comme indiqué plus haut, bien que la table de données a été divisée en ligne de l'espace de trois octets en fonction de la clé de la région, mais évidemment, la région 3 du volume de données effectivement stockées est beaucoup plus grande que la région 1 et région 2. Région 3 dans ce cas, il y a la possibilité de devenir un point chaud. Pour améliorer cette situation, les moissonneuses-batteuses Noah-TSDB égaux intervalles de temps table partie span dispose d'un environnement de production tableau TSDB-données est déterminée par référence à la table de l'historique d'utilisation de la nouvelle pré-partitionnement de table. La clé de la ligne est calculée et l'environnement de la production attendue effectivement généré valeur seuil taille de la partition de la région, la valeur de coupure en fonction du tableau de niveau d'eau réelle dans la région proche, si bien que chaque région de la fente de la taille des échantillons, mais chaque région réelle le nombre de stockage équivaut à réduire davantage le risque de points chauds.

    Région 4 après pré-partitionnement optimisation figure

    Comment mettre en place une région de nombre raisonnable

    La stratégie de pré-partitionnement décrit dans l'article précédent, en plus de la nécessité de se référer à l'utilisation réelle de l'environnement de production ont également besoin d'estimer la taille de la région conformément aux paramètres du système appropriés et les ressources des machines telles que le seuil de fractionnement, détermination de la taille de la région, nous pouvons estimer l'ensemble Région nombre. Alors, comment déterminer si le groupe actuel est capable de porter le nombre Région ajusta? Si la région numéro Irrational Quels sont les risques? Avant de discuter de l'impact du nombre de grappes Région, nous avons d'abord comprendre quelques notions de base:

  • données HBase dans le processus d'écriture, les données sont d'abord écrites Memstore (mémoire cache en écriture) est triée, puis ajouté à la HFILE dans Flush asynchrone. Une pluralité de groupe de colonnes pluralité correspondante région Memstore, est l'unité minimum Memstore Région Flush.
  • Lorsqu'une somme de toutes les tailles de memstore de RegionServer atteint un seuil de déclenchement hbase.regionserver.global.memstore.upperLimit * hbase_heapsize Memstore Flush. La chasse d'ordre descendant Memstore, jusqu'à utilisation de la mémoire MemStore est inférieure à un seuil hbase_heapsize * hbase.regionserver.global.memstore.lowerLimit.
  • HBase régulièrement Flush Memstore pour protéger Memstore ne dispose pas d'une longue persistance. Pour éviter tous les MemStore ont porté Flush cause des problèmes en même temps, le fonctionnement régulier de rinçage délai aléatoire.
  • En résumé, d'une part en raison de la même RegionServer partagée Memstore, trop peut causer le nombre Région Memstore fréquence Flush devient plus rapide, HFILE produit augmente, Hbase compaction de conduite en cours, causé La tempête combinée . Rincer d'autre part la régulièrement HBase memstore, chaque fois que la nécessité de coexister Flush chaque groupe de colonnes correspondant à chaque région est écrit dans le fichier au memstore de HDFS, plus le numéro de la région, le nombre de documents à traiter avec chaque plus, même s'il y a mécanisme de retard aléatoire, de créer et de données Migrer dans un court laps de temps permettra également d'augmenter la charge plus de cluster de fichiers peut provoquer le délai d'attente instantané, délai d'attente, et le chargement en vrac délai d'attente du client, de réduire les performances du système TSDB. Région va donc réduire le nombre excessif de débit du système.

    Région le nombre est trop petit Réduire les performances du système . Lorsque le cas où la même quantité de données, puisque le nombre est trop faible résultant en une seule demande trop grande, la Région écriture Région traités par grande région, lorsque la vitesse lentement Éclat de vitesse d'écriture de captures et, sur écriture sabot, affecter RPC, affectant ainsi l'écriture globale et la requête HBase, ce qui réduit le débit du système.

    Région nombre déraisonnable, réduit la performance globale du système et la fiabilité TSDB, Calcul Numéro Région RegionServer unique de gestion généralement recommandée suit:

    Copiez le code

    # {Région} = (RS mémoire) * (fraction totale de memstore) / ((memstore taille) * (# {familles de colonne}))

    Par exemple, si RegionServer les paramètres suivants:

  • Java Heap Taille de HBase RegionServer en octets est réglé 20G
  • hbase.regionserver.global.memstore.upperLimit 0,4
  • hbase.hregion.memstore.flush.size est 128M
  • le numéro de groupe de la pluralité de colonnes du tableau 2 Total
  • Puis # {Région} = 20 * 1024 * 0,4 / (128 * 2) = 32. Cette formule est l'hypothèse selon laquelle toute la région prémisse sont écrites à la même vitesse, si les données réelles est écrit dans une partie de la région, en fonction des résultats de rapport, en liaison avec les opérations d'ajustement. Par exemple, les données de scène Noah-TSDB selon emploi du temps, une donnée générale aujourd'hui existe dans la table de données, les données d'écriture sont concentrées dans la plus récente table un, l'écriture réelle est beaucoup plus petit que le nombre de région active région du nombre total, le nombre réel dans chaque région de gestion RegionServer est environ trois fois les résultats de calcul par la formule ci-dessus directement.

    Après le nombre estimé de la région Région dans son ensemble et le nombre de la gestion de RegionServer unique, on peut raisonnablement Planification des capacités , Lorsque le réglage du groupe des besoins estimés des ressources de la machine.

    résumé

    Tout le contenu présenté ci-dessus est aujourd'hui, et simple pour tout le monde à utiliser HBase partagé une expérience pratique. En fait, l'utilisation réelle, nous avons aussi trouvé le HBase trop lourd, l'exploitation et des coûts élevés d'entretien et d'autres questions, ont continué à mener la recherche et de l'infrastructure mise à niveau, vous avez de bonnes suggestions aile bienvenue. En outre, si le texte est pas en place ou là où il y a la compréhension de l'écart, bienvenue à me corriger.

    A propos de l'auteur

    Zhang Yangyang, ingénieur principal de recherche Baidu. Baidu est responsable de l'exploitation et la maintenance des produits intelligents (Noah) base de données distribuée et le calendrier de conception générale de la plate-forme de gestion des quotas et le travail de développement, possède une vaste expérience dans la gestion et la direction des quotas de stockage distribué.

    Cet article est reproduit des AIOps publics n ° opération intelligente et la maintenance (ID: AI_Ops)

    Lien original: https: //mp.weixin.qq.com/s/M_teW4hNNaLWbWghA02j9A

    Après Han Xue « synchronisant » à venir, grâce à un pantalon de pièce V-cou couture, jeu haute photo plein bits C support
    Précédent
    Manchester United a subi un autre coup: cinq géants Premiership course au titre collectif devant eux finissent par atteindre rien sauf
    Prochain
    Xie Na princesse vraiment gâté, et la robe à sequins vert foncé avec des talons hauts, les yeux d'aspiration de taille complète
    scène absurde football européen! gardien Premier League écossaise volant adversaires kick, mais faire semblant d'être blessé, et ensuite ne reconnaissent pas
    algorithmes d'apprentissage machine | algorithme détaillé Adaboost
    Elle est « très bonne » femme Su Mingcheng, vêtu d'une veste de taille avec un pantalon « chaîne » au sens plein de la jeune fille
    30.000 personnes ont assisté à la bataille folle Bundesliga! 36 minutes bille 6 H 41 + signes fiche de fabrication d'un suspens ultime
    Et l'extraction de sous-graphe de densité détection communauté (sur)
    La Liga détruire brutalement mission! Cinq géants raté collective les six dernières années de la guerre en Europe l'acte de naissance de la honte
    Sun Li a parlé de la coopération, « Zhen Huan Biographie », jupes, chaussures à talons hauts à porter des vêtements avec 1,2 mètres de grandes jambes, puissant
    la fraude de contrôle des risques financiers des algorithmes de graphique
    Fou! Manchester United veut frapper 50 millions de saisir le numéro un beau melon proie 3ème coupe Hu Manchester City?
    mère biologique était fosse misérable, porte maintenant une chemise avec une combinaison de volants, fille de 37 ans dans une délicate
    Que ce soit le réseau de neurones profondeur a littéralement monté?