2017-07-28 3 views
0

J'essaie d'obtenir les comptes d'une liste de tables dans hbase en utilisant la commande count. Je place actuellement toutes les commandes dans input.txt.Script Shell pour les commandes hbase | count 'table'

entrée de l'échantillon

count 'test.table1', INTERVAL => 10000000, CACHE => 10000000 
count 'test.table2', INTERVAL => 10000000, CACHE => 10000000 

Commande

hbase shell ./input.txt 

Est-il possible d'écrire un script shell afin que je puisse courir sur nohup.out et obtenir la sortie comme ci-dessous via le script shell afin que je peux l'exécuter pour n'importe quel nombre de tables:

table1,500000 
table2,300 

Appréciez toute aide à cet égard

Répondre

1

Ce bit de code peut vous aider à obtenir le nombre d'enregistrements pour toutes les tables dans HBase.

#!/bin/bash echo 'list' | hbase shell | sed -e '1,/TABLE/d' -e '/seconds/,$d' | while IFS='' read -r line || [[ -n "$line" ]]; do echo "count '$line'" | hbase shell | tail -n 1 | xargs echo "$line,">> ./tableCount.log done

testé ce dans HBase 1.1.8, sortie sont stockés dans tableCount.log.

+0

Salut, merci pour l'info .. est-ce que nous passons la liste des noms de table en entrée dans un fichier? – divyanair

+0

Non, le code ci-dessus obtient d'abord la liste des tables dans HBase, puis obtient le non. de rangées pour chaque table. –