hadoop hbase opentsdb

hadoop - hbase no puede encontrar una tabla existente



opentsdb (10)

Basta con eliminar la tabla especificada de la ruta del guardián del zoológico. Por ejemplo, si zookeeper.znode.parent está configurado para blob en hbase-site.xml, debe iniciar zkCli.sh en el shell del servidor zookeeper y eliminar ese directorio con el comando rmr /blob/table/tsdb .

Configuré un clúster hbase para almacenar datos de opentsdb. Recientemente, debido al reinicio de algunos de los nodos, hbase perdió la tabla "tsdb". Todavía puedo hacerlo en la página del nodo maestro de hbase, pero cuando hago clic en ella, me da una excepción TableNotFoundException

org.apache.hadoop.hbase.TableNotFoundException: tsdb at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:952) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:818) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:782) at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:249) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:213) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:171) ......

Ingresé a hbase shell, intentando localizar la tabla ''tsdb'', pero recibí un mensaje similar.

hbase(main):018:0> scan ''tsdb'' ROW COLUMN+CELL ERROR: Unknown table tsdb!

Sin embargo, cuando intenté volver a crear esta tabla, hbase shell me dijo que la tabla ya existe ...

hbase(main):013:0> create ''tsdb'', {NAME => ''t'', VERSIONS => 1, BLOOMFILTER=>''ROW''} ERROR: Table already exists: tsdb!

Y también puedo listar la tabla en hbase shell

hbase(main):001:0> list TABLE tsdb tsdb-uid 2 row(s) in 0.6730 seconds

Echando un vistazo al registro, encontré esto que debería ser la causa de mi problema

2012-05-14 12:06:22,140 WARN org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation: Encountered problems when prefetch META table: org.apache.hadoop.hbase.TableNotFoundException: Cannot find row in .META. for table: tsdb, row=tsdb,,99999999999999 at org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:157) at org.apache.hadoop.hbase.client.MetaScanner.access$000(MetaScanner.java:52) at org.apache.hadoop.hbase.client.MetaScanner$1.connect(MetaScanner.java:130) at org.apache.hadoop.hbase.client.MetaScanner$1.connect(MetaScanner.java:127)

Dice que no se puede encontrar la fila de tsbb en .META., Pero de hecho hay filas de tsdb en .META.

hbase(main):002:0> scan ''.META.'' ROW COLUMN+CELL tsdb,/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/ column=info:regioninfo, timestamp=1336311752799, value={NAME => ''tsdb,/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/x00/x02/x00/x00/x12/x00/x00/x03/x00/x00/x13/x00/x00/x x00/x02/x00/x00/x12/x00/x00/x03/x00/x00/x13/x00/x00/x05/x00 05/x00/x001,1336311752340.7cd0d2205d9ae5fcadf843972ec74ec5.'', STARTKEY => ''/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/x00/x02/x00/x00/x12/x00/x00/x03/x00/x00/x13/x00/ /x001,1336311752340.7cd0d2205d9ae5fcadf843972ec74ec5. x00/x05/x00/x001'', ENDKEY => ''/x00/x00/x10O/xA3/x8C/x80/x00/x00/x01/x00/x00/x0B/x00/x00/x02/x00/x00/x19/x00/x00/x03/x00/x00/x1A/x00/x00/x05/x00/x001'', ENCODED => 7cd0d2205d9ae5f cadf843972ec74ec5,} tsdb,/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/ column=info:server, timestamp=1337011527000, value=brycobapd01.usnycbt.amrs.bankofamerica.com:60020 x00/x02/x00/x00/x12/x00/x00/x03/x00/x00/x13/x00/x00/x05/x00 /x001,1336311752340.7cd0d2205d9ae5fcadf843972ec74ec5. tsdb,/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/ column=info:serverstartcode, timestamp=1337011527000, value=1337011518948 ...... tsdb-uid,,1336081042372.a30d8074431c6a31c6a0a30e61fedefa. column=info:server, timestamp=1337011527458, value=bry200163111d.usnycbt.amrs.bankofamerica.com:60020 tsdb-uid,,1336081042372.a30d8074431c6a31c6a0a30e61fedefa. column=info:serverstartcode, timestamp=1337011527458, value=1337011519807 6 row(s) in 0.2950 seconds

Aquí está el resultado después de ejecutar "hbck" en el clúster

ERROR: Region hdfs://slave-node-1:9000/hbase/tsdb/249438af5657bf1881a837c23997747e on HDFS, but not listed in META or deployed on any region server ERROR: Region hdfs://slave-node-1:9000/hbase/tsdb/4f8c65fb72910870690b94848879db1c on HDFS, but not listed in META or deployed on any region server ERROR: Region hdfs://slave-node-1:9000/hbase/tsdb/63276708b4ac9f11e241aca8b56e9def on HDFS, but not listed in META or deployed on any region server ERROR: Region hdfs://slave-node-1:9000/hbase/tsdb/e54ee4def67d7f3b6dba75a3430e0544 on HDFS, but not listed in META or deployed on any region server ERROR: (region tsdb,/x00/x00/x0FO/xA2/xF1/xD0/x00/x00/x01/x00/x00/x0E/x00/x00/x02/x00/x00/x12/x00/x00/x03/x00/x00/x13/x00/x00/x05/x00/x001,1336311752340.7cd0d2205d9ae5fcadf843972ec74ec5.) First region should start with an empty key. You need to create a new region and regioninfo in HDFS to plug the hole. ERROR: Found inconsistency in table tsdb Summary: -ROOT- is okay. Number of regions: 1 Deployed on: master-node,60020,1337011518948 .META. is okay. Number of regions: 1 Deployed on: slave-node-2,60020,1337011519845 Table tsdb is inconsistent. Number of regions: 5 Deployed on: slave-node-2,60020,1337011519845 slave-node-1,60020,1337011519807 master-node,60020,1337011518948 tsdb-uid is okay. Number of regions: 1 Deployed on: slave-node-1,60020,1337011519807 5 inconsistencies detected. Status: INCONSISTENT

he corrido

bin/hbase hbck -fix

que lamentablemente no resuelve mi problema

¿Podría alguien ayudarme en esto que

  1. ¿Es posible recuperar esta tabla "tsdb"?
  2. Si no se puede hacer 1, ¿es una forma sugerida de eliminar con gracia ''tsdb'' y crear uno nuevo?
  3. Me agradecería mucho que alguien me hiciera saber cuál es la forma más sugerida de reiniciar un nodo. Actualmente, estoy dejando mi nodo maestro siempre arriba. Para otros nodos, ejecuto este comando inmediatamente después de su reinicio.

mando:

# start data node bin/hadoop-daemon.sh start datanode bin/hadoop-daemon.sh start jobtracker # start hbase bin/hbase-daemon.sh start zookeeper bin/hbase-daemon.sh start regionserver

¡Muchas gracias!


Más instrucciones para borrar las tablas:

~/hbase-0.94.12/bin/hbase shell > truncate ''tsdb'' > truncate ''tsdb-meta'' > truncate ''tsdb-uid'' > truncate ''tsdb-tree'' > exit

También tuve que reiniciar el demonio tsd.


Me enfrento a estos problemas en mi lugar de trabajo. Por lo general, elimino los znodes y ellos eliminan la tabla correspondiente o reinician hbase tanto HMaster como Hregionserver para obtener el estado de hbck OK.


No estoy muy seguro de por qué no puede escanearlo. Sin embargo, para recrear la tabla, puedes intentar esto:

1) Borre manualmente todas las entradas en la tabla .META para esta tabla, y

2) Eliminar el directorio correspondiente a esta tabla de HDFS

Intenta crear la tabla de nuevo después de eso.


Para expandir la respuesta de @Devin Bayer, ejecute:

delete /hbase/table/<name_of_zombie_table>

si encuentras alguna mesa zombie mantenida por el guardián del zoológico. Para obtener más ayuda sobre este tema, debes buscar en Google ''Tablas de zombies HBase''.


Recibo un mensaje de error similar cuando intento una conexión HBase desde un cliente Java en una máquina que no tiene el privilegio de TCP para acceder a las máquinas HBase. La tabla existe de hecho cuando hago shell hbase en la máquina HBase.

¿Opentsdb tiene todos los privilegios / configuración de puerto para acceder a la máquina HBase?


Si está utilizando cdh4.3, la ruta en zookeeper debería ser / hbase / table94 /


Un poco tarde, tal vez sea útil para el buscador.

  1. Ejecute el shell de ZooKeeper hbase zkcli
  2. En la shell ejecuta ls /hbase/table
  3. Ejecute rmr /hbase/table/TABLE_NAME
  4. Reiniciar Hbase

intenta arreglar meta

  1. hbase hbck
  2. hbase hbck -fixMeta
  3. hbase hbck -fixAssignments
  4. hbase hbck -fixReferenceFiles

después y vuelve a intentarlo


hbase-clean.sh --cleanZk

Funciona bien, lo suficientemente simple.