2017-04-18 31 views
0

我在AWS上設置了accumulo羣集,其中有兩臺機器masterslave1master節點旨在表現得像monitortserver。這是我的accumulo設置。Accumulo tservers不在遠程節點上啓動

這是我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> 

這是我conf/masters

localhost 

這是我conf/slaves

localhost 
slave1 

我的Hadoop集羣工作完全正常和另外,Zookeeper也在master上運行。該accumulo是初始化,我跑start-all.sh腳本,這表明它正在啓動TSERVER上SLAVE1但Web接口僅是隻顯示1所TSERVER運行的是master:9997

我在這裏錯過了什麼嗎?

回答

0

我剛剛意識到我已經爲accumulo-site.xml中的zookeeper條目寫入了localhost,因此tservers在遠程節點上找不到動物園管理員。我改變了它,並開始工作。

2

引用節點時使用完全限定的域名(主機名)。在使用localhost時,如何解析爲物理機器取決於您運行Accumulo命令的節點。

例如,如果您從「SLAVE1」節點跑start-all.sh,你最終會試圖開始localhostslave1一個TabletServer這將是相同的節點。

即使在您碰巧使啓動TabletServer的情況下,您是否通過SSH連接到該主機並檢查TabletServer進程是否正在運行?您是否看到TabletServer的.out/.err或.log文件中是否有信息?共初始設置的問題是,當用戶沒有正確配置無密碼的SSH(運行Accumulo用戶必須能夠從您的slaves文件例如ssh slave1 ssh到指定的主機名)。

+0

我能夠ssh到沒有密碼的機器。另外,我嘗試給'etc/hosts'文件添加名稱,然後將它們用在conf目錄下的accumulo主文件和從文件中,但它們是相同的。 – molecule

+0

謝謝,你的回答幫助我尋找真正的問題 – molecule