2016-04-05 1 views
1

Récemment, j'ai regardé la zone de données sur mon cluster Accumulo et j'ai remarqué qu'il semble se détériorer avec le temps. Mon instinct me dit que c'est parce que le maître a redistribué les tablettes pour aider à équilibrer le cluster, en particulier après avoir terminé un redémarrage.Préservation de la localisation des données dans Accumulo

Je pense à la mise en place de compactions majeures manuelles pour s'exécuter du jour au lendemain sur toutes mes tables afin de garder cette localité de données aussi proche que possible de 100%. Est-ce quelque chose que vous avez déjà fait ou y a-t-il une meilleure façon de gérer cela?

Répondre

1

Tant que vous continuez à écrire plus de données dans Accumulo, vous aurez un « pas tout à fait à 100% » mesure de la localité. Lorsque vous écrivez plus de données, les tablettes se divisent: une tablette devient deux. Généralement, après une scission, l'un des enfants sera déplacé vers un autre serveur car il invalidera la distribution des tablettes qu'Accumulo essaie de maintenir. Jusqu'à ce que la tablette enfant d'une scission se fasse automatiquement majorée, vous n'aurez aucune localité. C'est en fait un domaine où Accumulo pourrait prendre des décisions plus intelligentes concernant l'équilibrage des comprimés, en privilégiant la localité HDFS au lieu de simplement distribuer les comprimés entre les seringues (mais ce serait un effort majeur à entreprendre). Pour votre cas, il n'est certainement pas absurde d'envisager une compaction majeure sur cron durant la nuit (ou chaque fois que votre temps «hors pointe» est). Nous pourrions probablement faire quelque chose d'intelligent et créer un outil qui juge la localité de tous les comprimés pour une table et élaguer le nombre de comprimés qui sont en dessous d'un certain seuil de localité (par exemple < 90% local) ce qui aiderait à éviter le compactage des données qui sont déjà locales.

Si vous êtes intéressé, s'il vous plaît ne hésitez pas à vous inscrire et d'envoyer un message à [email protected]; Je serais heureux de vous aider plus en détail ici.