我在AWS上设置了一个accumulo集群,我有两台机器master
和slave1
。 master
节点的行为与monitor
和tserver
相同。这是我对accumulo的设置。
这是我的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
脚本,显示它在slave1上启动了tserver,但是web界面只显示运行1个tserver,即master:9997
。
我在这里错过了什么吗?
答案 0 :(得分:2)
引用节点时使用完全限定的域名(主机名)。当您使用localhost
时,解析到物理机器的方式取决于您运行Accumulo命令的节点。
例如,如果您从&#34; slave1&#34;运行start-all.sh
节点,您最终会尝试在localhost
和slave1
上启动TabletServer,这将是同一个节点。
即使您在slave
上启动了TabletServer,您是否已通过SSH连接到该主机并检查TabletServer进程是否正在运行?您是否看到TabletServer的.out / .err或.log文件中是否有信息?常见的初始设置问题是当用户没有正确配置无密码SSH时(运行Accumulo的用户必须能够从slaves
文件ssh到给定的主机名,例如ssh slave1
)。
答案 1 :(得分:0)
我刚刚意识到我已经为localhost
中的zookeeper条目编写了accumulo-site.xml
,因此tservers无法在远程节点上找到zookeeper。我改变它,它开始工作。