web-dev-qa-db-fra.com

Comment lister les régions dans une table HBase à travers le shell?

J'aimerais obtenir les mêmes informations sur les régions d'une table qui apparaissent dans l'interface utilisateur Web (c'est-à-dire nom de région, serveur de région, clé de début/fin, localité), mais via le shell hbase. 

(L'interface utilisateur est floconneuse/lente et je souhaite en outre traiter ces informations dans le cadre d'un script.)

Après beaucoup de recherches sur Google, je ne peux pas savoir comment, et cela me surprend immensément. la version est 1.0.0.-cdh5.4.0

13
Kevin Pauli

Pour obtenir les informations de région sur la table, vous devez analyser la table hbase:meta.

scan 'hbase:meta',{FILTER=>"PrefixFilter('table_name')"}

Cette commande donnera des détails sur toutes les régions. La clé de ligne aura le nom de la région et il y aura quatre qualificateurs de colonne. Vous aurez peut-être besoin des deux qualificateurs de colonne suivants:

info:regioninfo - Ce qualificatif contient STARTKEY et ENDKEY.

info:server - Ce qualificatif contient les détails du serveur de région

31
Maddy RS

Voici une réponse de la liste de diffusion HBase:

le statut 'détaillé' vous indiquerait suffisamment d'informations

t1,30,1449175546660.da5f3853f6e59d1ada0a8554f12885ab." 
  numberOfStores=1, numberOfStorefiles=0, 
  storefileUncompressedSizeMB=0, lastMajorCompactionTimestamp=0, 
  storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, 
  readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, 
  totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, 
  currentCompactedKVs=0, compactionProgressPct=NaN, completeSequenceId=-1, 
  dataLocality=0.0 

Cependant, cela retourne les informations de all les tables et vous devez analyser les régions de la table qui vous intéresse.

2
Kevin Pauli

Il existe un outil dans hbase utilisé pour la récupération de table et le contrôle de cohérence, appelé hbase hbck . Bien que cela ne soit pas exécuté dans le shell hbase, il peut être utilisé pour obtenir la liste des régions. 

La commande hbase hbck -details <tablename> peut être utilisée pour obtenir les détails de la table et contiendra les informations de région requises. 

La sortie de la commande susmentionnée peut être analysée pour obtenir les informations de région de la table requise.

1
Nishant Goyal

Utilisez la commande "officielle" list_regions Shell pour répertorier toutes les régions. Notez que cet outil est disponible uniquement à partir des versions HBase 1.4 et supérieures.

Some examples are 
        Examples:
        hbase> list_regions 'table_name'
        hbase> list_regions 'table_name', 'server_name'
        hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8}
        hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8}, ['SERVER_NAME']
        hbase> list_regions 'table_name', {}, ['SERVER_NAME', 'start_key']
        hbase> list_regions 'table_name', '', ['SERVER_NAME', 'start_key']

Des détails sur sa mise en œuvre sont disponibles sur: https://issues.Apache.org/jira/browse/HBASE-14925

1
LearningToCode