2017-04-10 3 views
0

Ich habe zwei Tabellen auf zwei verschiedenen Maschinen beide Lauf zookeeper als Dämon, einer von ihnen hat 1 myid das andere hat myid 2.ClickHouse ReplicatedMergeTrees Konfigurationsprobleme

Die Tabelle als solche auf der Maschine konfiguriert ist, „1“ :

CREATE TABLE test(values) 
ReplicatedMergeTree('/clickhouse/tables/01/test', '1', date, timestamp, 8192) 

die Tabelle als solche auf der Maschine "2" konfiguriert ist:

CREATE TABLE test(values) 
ReplicatedMergeTree('/clickhouse/tables/01/test', '2', date, timestamp, 8192) 

01 in den '/ clickhouse/Tabellen/01/test' ist wahrscheinlich die wit messing Werte h ich ... seit ich '{layer} - {shard}' damit .... aber da ich keine remote_servers konfiguriert habe, habe ich angenommen, dass ich einfach jeden Wert verwenden kann und es wäre egal, da ich nicht will Abfrageverteilung, nur Datenduplikation.

Auch die Tabellen scheinen einander "bewusst" zu sein, da die Erstellung von zwei Tabellen mit der Replikennummer "2" oder "1" zu einem Fehler führt, der besagt, dass eine solche Tabelle bereits existiert.

Muss ich einen Remote-Server standardmäßig konfigurieren, wenn ich die Replikation verwenden möchte? Muss ich zoekeeper speziell für die Tabellen, die ich replizieren möchte, konfigurieren? Haben Sie detailreiche Beispiele zum Einrichten der Datenreplikation mit Clickhouse?

Antwort

1

Es scheint, dass Sie alles richtig gemacht haben. {layer}-{shard} Teil ist optional - es vereinfacht nur die Erstellung ähnlicher Tabellen auf vielen Servern. Das Minimum für die Konfiguration einer replizierten Tabelle ist ein Pfad in zookeeper, der für alle Replikate gemeinsam ist (per Konvention beginnt dieser Pfad mit /clickhouse/tables/, aber tatsächlich ist jeder eindeutige Pfad geeignet) und eine Kennung, die für jedes Replikat eindeutig ist ('1' und '2' sind total OK, aber aussagekräftigere Namen, mit denen Sie den entsprechenden Host identifizieren können, werden empfohlen).

Die Konfiguration remote_servers ist für die Replikation nicht erforderlich, aber zookeeper ist erforderlich. Sie können einen einzelnen Zoo-Keeper-Cluster für alle replizierten Tabellen verwenden.

+0

Wird der Pfad (z. B./clickhouse/tables /) vom Zoowärter automatisch erstellt. Wie in, wenn ich den gleichen Pfad für alle Tabellen habe muss ich noch etwas in Zoowächter konfigurieren? – George

+0

ClickHouse erstellt automatisch den Zookeeper-Pfad, der während der Erstellung der Engine an die ReplicatedMergeTree-Engine übergeben wird, seine nicht vorhandenen Eltern und die darin enthaltene Verzeichnisstruktur. Nachdem die letzte Replikattabelle gelöscht wurde, wird dieser Pfad gelöscht. Also ja, alles sollte automatisch passieren. Was ist die genaue Art Ihrer Schwierigkeiten? –

+0

Die genaue Fehlermeldung, die ich momentan erhalte, ist wie folgt (ich erhalte dies, nachdem ich Daten in eines der Replikate einfüge): DB :: StorageReplicatedMergeTree :: queueTask() :: : Poco :: Ausnahme. Code: 1000, e.code() = 0, e.displayText() = Host nicht gefunden: otherMachineHostname, e.what() = Host nicht gefunden – George

Verwandte Themen