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:
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:
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:
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