Accumulo tservers 未在远程节点上启动

Accumulo tservers not starting on remote nodes

我在 AWS 上设置了一个 accumulo 集群,我有两台机器 masterslave1master 节点旨在表现得像 monitortserver。这是我的累积设置。

这是我的 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 也在 运行 主服务器上。 accumulo 已初始化,我 运行 start-all.sh 脚本显示它正在 slave1 上启动 tserver,但 Web 界面仅显示 1 个 tserver 运行,即 master:9997

我是不是漏掉了什么?

引用节点时使用完全限定的域名(主机名)。当您使用 localhost 时,它如何解析为物理机器取决于您从哪个节点 运行 Accumulo 命令。

例如,如果您从 "slave1" 节点 运行 一个 start-all.sh,您最终会尝试在 localhostslave1 这将是同一个节点。

即使在您碰巧在 slave 上启动 TabletServer 的情况下,您是否通过 SSH 连接到该主机并检查 TabletServer 进程是否正在 运行ning?您是否看到 TabletServer 的 .out/.err 或 .log 文件中是否有信息?一个常见的初始设置问题是用户没有正确配置无密码 SSH(用户 运行ning Accumulo 必须能够从您的 slaves 文件中通过 ssh 连接到给定的主机名,例如 ssh slave1 ).

我刚刚意识到我已经为 accumulo-site.xml 中的 zookeeper 条目编写了 localhost,因此 tservers 在远程节点上找不到 zookeeper。我更改了它,它开始工作了。