【问题标题】:DSE with Hadoop: Error in getting started使用 Hadoop 的 DSE:开始时出错
【发布时间】:2015-01-17 22:04:34
【问题描述】:

我在使用 Hadoop 的 DSE 中遇到问题。

让我描述一下设置,包括一些细节中的步骤,以便您能够帮助我。

我建立了一个三节点的 DSE 集群,集群名称为“training”。三台机器都运行 Ubuntu 14.04、64 位、4 GB RAM。

DSE 是使用 GUI 安装程序(sudo 命令)安装的。安装后修改cassandra.yaml文件为

rpc_address = 0.0.0.0

三个节点一个接一个地启动。创建了一个具有 replication_factor = 3 的键空间。从任何其他节点成功插入和访问数据。

然后将 DSE 安装在第四台机器上(我们称这台机器为 HadoopMachine),再次使用相同的配置,使用 GUI 安装程序 (sudo)。

/etc/default/dse修改如下:

HADOOP_ENABLED = 1

然后,在这台 HadoopMachine 上,运行以下命令:

sudo service dse start

到目前为止一切顺利。

然后从安装目录:

bin/dse hadoop fs -mkdir /user/hadoop/wordcount

这失败了。给出一连串很长的错误消息,长达数百行,结尾是:

    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368)
    at com.datastax.bdp.loader.SystemClassLoader.tryLoadClassInBackground(SystemClassLoader.java:163)
    at com.datastax.bdp.loader.SystemClassLoader.loadClass(SystemClassLoader.java:117)
    at com.datastax.bdp.loader.SystemClassLoader.loadClass(SystemClassLoader.java:81)
    at com.datastax.bdp.loader.SystemClassLoader.loadClass(SystemClassLoader.java:75)
    at java.util.ResourceBundle$RBClassLoader.loadClass(ResourceBundle.java:503)
    at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2640)
    at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1501)
    at java.util.ResourceBundle.findBundle(ResourceBundle.java:1465)
    at java.util.ResourceBundle.findBundle(ResourceBundle.java:1419)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1361)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:890)
    at sun.util.resources.LocaleData$1.run(LocaleData.java:164)
    at sun.util.resources.LocaleData$1.run(LocaleData.java:160)
FATAL ERROR in native method: processing of -javaagent failed
bin/dse: line 192: 12714 Aborted                 (core dumped) "$HADOOP_BIN/hadoop" "$HADOOP_CMD" $HADOOP_CREDENTIALS "${@:2}"

我不知道问题是什么,以及如何解决。

将不胜感激任何帮助。谢谢。

【问题讨论】:

  • 试试 dse hadoop fs -mkdir /user/hadoop/wordcount/input。如果这不起作用,请尝试 sudo dse hadoop fs -mkdir /user/hadoop/wordcount/input。 cd install_location 和 bin/dse hadoop fs 命令指令用于 tarball 或无服务安装。
  • @catpaws,这两个都试过了。还是一样的结果。给出命令“dse hadoop”会显示命令列表,这表明 hadoop 正在运行并且可以访问;但命令“dse hadoop fs”或“dse hadoop fs -mkdir /user/hadoop/wordcount”会导致上述错误。
  • 你能连接到 HadoopMachine 上的 cqlsh 吗? desc keyspace cfs 的输出是什么;您是否在单独的数据中心拥有 HadoopMachine? nodetool status的输出是什么?
  • 您是否启用了密码保护?如果有,请看datastax.com/documentation/datastax_enterprise/4.5/…
  • @catpaws:不,也没有连接到 cqlsh(“无法连接到 localhost:9160”)。我一定犯了一些根本性的、愚蠢的错误,但无法查明它。困惑:寻找什么以及在哪里。

标签: hadoop cassandra datastax-enterprise


【解决方案1】:

经过一番努力,我终于找到了解决方案。一直以来我一直在猜测,问题可能出在某个不太明显的地方,至少对我而言,这是一个不明显的地方,结果就是这样。

因此,为了其他可能面临同样问题的人的利益,问题是什么以及有效的方法如下。

DSE 文档规定,对于具有集成 Hadoop 的 DSE,您必须拥有 Oracle JRE 7。我也许愚蠢地认为这意味着 Oracle JRE 7 或更高版本。所以我在我的机器上安装了 JRE 8,但从未意识到这会是问题所在。当我删除 JRE 8 并安装 JRE 7 和宾果游戏时,它起作用了。

我很惊讶。现在我意识到,由于 DSE 使用 Hadoop 1.0.4(一个古老的版本),它只适用于 JRE 7。 JRE 8 一定是在 Hadoop 1.0.4 之后出现的,而且我猜 JRE 8 中的某些东西一定与 JRE 7 不兼容。

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2013-03-28
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多