gpt4 book ai didi

Mesos 上的 Hadoop 失败并显示 "Could not find or load main class org.apache.hadoop.mapred.MesosExecutor"

转载 作者:可可西里 更新时间:2023-11-01 14:47:24 25 4
gpt4 key购买 nike

我有一个 Mesos 集群设置——我已经验证主节点可以看到从节点——但是当我尝试运行 Hadoop 作业时,所有任务都以 LOST 状态结束。所有从站 stderr 日志中都存在相同的错误:

Error: Could not find or load main class org.apache.hadoop.mapred.MesosExecutor

这是 stderr 日志中唯一的一行。

按照 http://mesosphere.io/learn/run-hadoop-on-mesos/ 上的说明进行操作,我在 HDFS 上放置了一个修改后的 Hadoop 分布,每个从站都可以访问它。在 Hadoop 发行版的 lib 目录中,我添加了 hadoop-mesos-0.0.4.jarmesos-0.14.2.jar .

我已经验证每个从属确实下载了这个 Hadoop 发行版,并且 hadoop-mesos-0.0.4.jar 包含类 org.apache.hadoop.mapred.MesosExecutor ,所以我无法弄清楚为什么找不到该类。

我正在使用来自 CDH4.4.0 和 mesos-0.15.0-rc4 的 Hadoop。

有没有人对可能出现的问题有任何建议?我知道我总是从 CLASSPATH 问题开始,但是,在这种情况下,mesos-slave 正在下载、解包并尝试运行 Hadoop TaskTracker,所以我可以想象任何 CLASSPATH 将由 mesos-slave 设置。

在从属日志的标准输出中,打印了环境。有一个 MESOS_HADOOP_HOME 是空的。这应该设置为什么吗?如果要设置为下载的Hadoop发行版,我不能提前设置,因为Hadoop发行版每次都下载到一个新的位置。

在相关事件中(可能存在一些权限问题),当尝试通过主 UI 浏览从属日志时,我收到错误 Error browsing path: ...。当我手动执行操作时,运行 mesos-slave 的用户可以浏览到正确的目录。

最佳答案

我发现了问题。 bin/hadoop下载的 Hadoop 发行版尝试通过运行 which $0 来查找其位置.但是,如果存在一个当前的 Hadoop 安装(即 /usr/lib/hadoop ),它将找到一个当前的 Hadoop 安装,并将加载该安装的 lib 下的 jar。目录而不是下载的 lib目录。

我不得不修改 bin/hadoop下载的发行版找到自己的位置 dirname $0而不是 which $0 .

关于Mesos 上的 Hadoop 失败并显示 "Could not find or load main class org.apache.hadoop.mapred.MesosExecutor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20200506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com