1

我一直在努力在 cloudera 快速启动 VM 上安装 accumulo(我发现快速启动不是什么)。我正在尝试通过 cloudera manager 安装它(我认为它会更加即插即用)但是在第 5 步尝试启动 Accumulo 服务时,该过程失败。挖掘日志,我发现它无法启动 Master、Tracer、Tablet 服务器或垃圾收集器。主人的 Stderr 给了我以下信息:

++ hostname
+ HOST=quickstart.cloudera
+ '[' master = monitor -a '' = true ']'
+ exec /usr/lib/accumulo/bin/accumulo master --address quickstart.cloudera
grep: /var/run/cloudera-scm-agent/process/26-accumulo16-ACCUMULO16_MASTER/masters: No such file or directory
log4j:WARN No appenders could be found for logger (org.apache.accumulo.start.classloader.AccumuloClassLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Uncaught exception: com/google/common/base/Preconditions
java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:325)
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:338)
    at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:420)
    at org.apache.hadoop.io.WritableComparator.<init>(WritableComparator.java:128)
    at org.apache.hadoop.io.WritableComparator.<init>(WritableComparator.java:116)
    at org.apache.hadoop.io.Text$Comparator.<init>(Text.java:360)
    at org.apache.hadoop.io.Text.<clinit>(Text.java:374)
    at org.apache.accumulo.server.master.Master.<clinit>(Master.java:192)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.accumulo.start.classloader.AccumuloClassLoader.loadClass(AccumuloClassLoader.java:378)
    at org.apache.accumulo.start.classloader.AccumuloClassLoader.loadClass(AccumuloClassLoader.java:385)
    at org.apache.accumulo.start.Main.main(Main.java:42)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 13 more

任何帮助,将不胜感激。不幸的是,我不会说太多 Java - 我猜我错过了一个关键的包,但是如果是这种情况,我对为什么将它作为 accumulo 设置的一部分安装感到困惑(仅供参考,这是一个全新的 cloudera.quickstart VM) .

4

1 回答 1

0

关于服务未启动;确保您已将网关角色或某些/任何 HDFS 角色分配给您的 accumulo master、monitor、tracer 和 gc 节点。我遇到了同样的问题,一旦我意识到 accumulo 看不到 HDFS,我就添加了 Gateway 角色。然后我能够初始化 accumulo 并启动相关的主服务。

hdfs dfs -ls /您可以通过在 accumulo master 上运行来检查 accumulo 是否可以看到 hadoop 文件系统。如果你得到一个错误说

警告:运行“ls”命令时未设置 fs.defaultFS

它向您显示本地文件系统,然后您就知道 accumulo master 看不到 HDFS 和必要的 accumulo 实例 ID。

于 2016-05-11T15:27:49.007 回答