2016-06-01 26 views
1

Wir sind mit Phoenix und hbase-Indexer für unsere hbase Cluster und wir haben ein seltsames Phänomen zu Phoenix-Sekundärindizes gefunden:Behandelt Phoenix sekundäre Indizes speziell WAL-Protokoll?

Wir stellen Daten (Verwendung psql zu importieren CSV-Daten) in eine Tabelle (C_PICRECORD) mit zwei globalen veränderbare Indextabellen (C_PICRECORD_IDX1 und C_PICRECORD_IDX2) von Phoenix und make hbase-indexer, um Daten in solr zu replizieren. Nach dem Datenimport haben wir herausgefunden, dass das Dokument numfound sich von der Anzahl der Zeilen in der HBase-Tabelle unterscheidet. Wenn wir die Indextabellen löschen, die Daten löschen und die Daten erneut eingeben, haben wir gefunden, dass das Dokumentnrumfunden von solr dasselbe ist wie die Zeilenanzahl in der hbase-Tabelle.

Vor kurzem fanden wir den Grund, warum Solr Dokument numfound unterscheidet sich von HBase Tabelle Zeilenanzahl: 1) es wird etwas falsch machen, um zu löschen, obwohl in der Tat importieren wir nur Daten (psql) mit zwei globalen Index Tabellen von Phoenix !

2) das seltsame Phänomen über inkonsistente Zeilenanzahl zwischen Solr und HBase nur auftreten, wenn wir sekundäre Indizes mit der Datentabelle hatten.

Es beunruhigt uns seit einer langen Zeit und es scheint, dass es etwas anders ist, wenn Phoenix sekundäre Indizes verwendet.

Also ist meine Frage: Behandelt Phoenix Sekundärindizes WAL-Protokoll speziell?

unserer env:

cdh5.4.2 hbase-1.0.0-cdh5.4.2 phonenix-4.6 hbase-solr-1,5-cdh5.4.2 (hbase-Indexer)

Cluster: 3 hbase regionserver und 3 hbase-Indexer

[Tipps]

hbase-Indexer stellen Daten in solr basierend auf hbase Replikation. Es fängt das WAL-Protokoll auf und legt interessierte Daten in solr. hbase-indexer github: https://github.com/NGDATA/hbase-indexer

Antwort