2011-06-20 7 views
2

En raison de problèmes juridiques, j'ai besoin de supprimer les anciennes données de HBase.HBase: Comment supprimer la région

J'ai trouvé un moyen de diviser la région en utilisant mes critères et en déplaçant les anciennes données vers la nouvelle région, mais existe-t-il un moyen de supprimer cette région?

une autre idée comment atteindre par objectif?

Répondre

4

Essayez

delete '.META.', 'ROW_FROM_META_WITH_YOUR_TABLE' 

Si vous n'êtes pas sûr de ce que la ligne que vous souhaitez supprimer lancer un balayage sur la « .meta. » ou vider sa valeur dans un fichier:

echo "scan '.META.'"| hbase shell &> dump.txt 

puis trouvez votre ligne et supprimez-la.

Comme cela laissera vos régions avec un "trou", assurez-vous d'exécuter hbase hbck PlatformData -repair pour les corriger.

Voici un small java code snippet qui fait exactement cela, et supprime les fichiers de HDFS sous-jacent.

+1

Ne pas oublier de se déplacer/supprimer les dossiers de données @ hdfs: //.../user/hbase/

/

0

Les touches de ligne Hbase peuvent être supprimées en supprimant toutes les familles de colonnes présentes pour la table. S'il n'y a pas de données sur une clé de ligne dans hbase, la clé est supprimée de hbase. Cela peut être fait en utilisant la commande Alter dans le shell Hbase.

Bien que ces touches de ligne ne s'affichent pas dans la table, les régions des clés de ligne supprimées sont présentes dans le fichier .META. sans données.

2

Dans les versions les plus récentes telles que la commande est 0.96:

deleteall 'hbase:meta', 'YOUR_ROW' 
Questions connexes