2017-04-18 4 views
0

Ich habe einen Accumulo-Cluster auf AWS eingerichtet, wo ich zwei Maschinen haben master und slave1. Der Knoten master soll sich sowohl wie monitor als auch tserver verhalten. Hier sind meine Einstellungen von accumulo.Accumulo Tservers starten nicht auf Remote-Knoten

das ist mein conf/accumulo-site.xml

<property> 
    <name>instance.volumes</name> 
    <value></value> 
    <description>comma separated list of URIs for volumes. example: hdfs://localhost:9000/accumulo</description> 
    </property> 

    <property> 
    <name>instance.zookeeper.host</name> 
    <value>localhost:2181</value> 
    <description>comma separated list of zookeeper servers</description> 
    </property> 

    <property> 
    <name>instance.secret</name> 
    <value>DEFAULT</value> 
    <description>A secret unique to a given instance that all servers must know in order to communicate with one another. 
     Change it before initialization. To 
     change it later use ./bin/accumulo org.apache.accumulo.server.util.ChangeSecret --old [oldpasswd] --new [newpasswd], 
     and then update this file. 
    </description> 
    </property> 

    <property> 
    <name>tserver.memory.maps.max</name> 
    <value>256M</value> 
    </property> 

    <property> 
    <name>tserver.memory.maps.native.enabled</name> 
    <value>false</value> 
    </property> 

    <property> 
    <name>tserver.cache.data.size</name> 
    <value>15M</value> 
    </property> 

    <property> 
    <name>tserver.cache.index.size</name> 
    <value>40M</value> 
    </property> 

    <property> 
    <name>trace.token.property.password</name> 
    <!-- change this to the root user's password, and/or change the user below --> 
    <value>secret</value> 
    </property> 

    <property> 
    <name>trace.user</name> 
    <value>root</value> 
    </property> 

    <property> 
    <name>tserver.sort.buffer.size</name> 
    <value>50M</value> 
    </property> 

    <property> 
    <name>tserver.walog.max.size</name> 
    <value>256M</value> 
    </property> 

    <property> 
    <name>general.classpaths</name> 
    <value> 
     <!-- Accumulo requirements --> 
     $ACCUMULO_HOME/lib/accumulo-server.jar, 
     $ACCUMULO_HOME/lib/accumulo-core.jar, 
     $ACCUMULO_HOME/lib/accumulo-start.jar, 
     $ACCUMULO_HOME/lib/accumulo-fate.jar, 
     $ACCUMULO_HOME/lib/accumulo-proxy.jar, 
     $ACCUMULO_HOME/lib/[^.].*.jar, 
     <!-- ZooKeeper requirements --> 
     $ZOOKEEPER_HOME/zookeeper[^.].*.jar, 
     <!-- Common Hadoop requirements --> 
     $HADOOP_CONF_DIR, 
     <!-- Hadoop 2 requirements --> 
     $HADOOP_HOME/share/hadoop/common/[^.].*.jar, 
     $HADOOP_HOME/share/hadoop/common/lib/(?!slf4j)[^.].*.jar, 
     $HADOOP_HOME/share/hadoop/hdfs/[^.].*.jar, 
     $HADOOP_HOME/share/hadoop/mapreduce/[^.].*.jar, 
     $HADOOP_HOME/share/hadoop/yarn/[^.].*.jar, 
     $HADOOP_HOME/share/hadoop/yarn/lib/jersey.*.jar, 
     </value> 
    <description>Classpaths that accumulo checks for updates and class files.</description> 
    </property> 
</configuration> 

das ist mein conf/masters

localhost 

das ist mein conf/slaves

localhost 
slave1 

Mein hadoop Cluster arbeitet völlig in Ordnung und ein Auch der Zookeeper läuft auf Master. Der accumulo wird initialisiert und ich lief start-all.sh Skript, das zeigt, dass es tserver auf slave1 startet, aber die Webschnittstelle ist nur zeigt nur 1 tserver läuft, dieist.

Fehle ich hier etwas?

Antwort

0

Ich habe gerade festgestellt, dass ich localhost für den zookeeper Eintrag in accumulo-site.xml geschrieben habe und daher die Tservers den Tierpfleger auf remote Knoten nicht finden konnten. Ich habe es geändert und es hat angefangen zu arbeiten.

2

Verwenden Sie vollständig qualifizierte Domänennamen (Hostnamen), wenn Sie sich auf Knoten beziehen. Wenn Sie localhost verwenden, hängt es davon ab, auf welchem ​​Knoten Sie Accumulo-Befehle ausführen.

Zum Beispiel, wenn Sie ein start-all.sh von Ihrem „slave1“ Knoten laufen, würden Sie am Ende versucht, eine TabletServer auf localhost und slave1 zu beginnen, die die gleichen Knoten sein würden.

Selbst in dem Fall, in dem Sie den TabletServer unter slave gestartet haben, haben Sie SSH an diesen Host gesendet und überprüft, ob ein TabletServer-Prozess ausgeführt wird? Haben Sie festgestellt, ob Informationen in den .out/.err- oder .log-Dateien für den TabletServer vorhanden sind? Ein häufig auftretendes Setup-Problem tritt auf, wenn Benutzer kennwortloses SSH nicht korrekt konfigurieren (der Benutzer, der Accumulo ausführt, muss mit dem angegebenen Hostnamen aus Ihrer slaves-Datei, z. B. ssh slave1, ssh-fähig sein).

+0

Ich bin in der Lage, die Maschinen ohne Passwörter ssh. Außerdem habe ich versucht, Namen in die Datei "etc/hosts" einzufügen und sie dann in den Dateien acumulo master und slave im Verzeichnis conf zu verwenden, aber es ist dasselbe. – molecule

+0

Danke, deine Antwort hat mir geholfen, nach dem wirklichen Problem zu suchen – molecule

Verwandte Themen