【问题标题】:Can't access HDFS on Mesosphere DC/OS despite "healthy" status尽管处于“健康”状态,但仍无法访问 Mesosphere DC/OS 上的 HDFS
【发布时间】:2016-08-09 16:33:50
【问题描述】:

所以我使用 CloudFormation 脚本/指令找到了here 在 AWS 中部署了一个 Mesos 集群,默认集群设置(5 个私有从属,一个公共从属,单个主,所有 m3.xlarge),并安装了 HDFS使用dcos 命令的集群:dcos package install hdfs

根据 DC/OS Web UI 和 Marathon,HDFS 服务显然是正常运行的:

(问题)此时我应该能够通过 SSH 连接到我的从节点并执行 hadoop fs 命令,但这会返回错误 -bash: hadoop: command not found(基本上告诉我没有 @ 987654328@安装在这里)。

没有来自 HDFS 服务的 STDOUT 和 STDERR 日志记录的错误,但值得一提的是,日志中经常出现“报价拒绝”消息:

Processing DECLINE call for offers: [ 5358a8d8-74b4-4f33-9418-b76578d6c82b-O8390 ] for framework 5358a8d8-74b4-4f33-9418-b76578d6c82b-0001 (hdfs) at scheduler-60fe6c75-9288-49bc-9180-f7a271c …

我确定我错过了一些愚蠢的东西。

【问题讨论】:

    标签: amazon-web-services hdfs mesos mesosphere dcos


    【解决方案1】:

    所以我想出了一个解决方案,至少在安装后验证 HDFS 是否在您的 Mesos DC/OS 集群上运行。

    1. 使用dcos CLI:dcos node ssh --master-proxy --leader SSH 到您的主服务器
    2. 创建一个安装了 hadoop 的 docker 容器来查询你的 HDFS:docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/

    为什么这不是一个好的解决方案以及需要注意什么:

    1. Previous documentation 都指向默认 URL hdfs://hdfs/,而这将抛出 java.net.UnknownHostException。我不喜欢直接指向名称节点。
    2. Other documentation 建议您可以在通过 SSH 连接到集群时运行 hdfs fs ... 命令 - 这与文档中的情况不同。
    3. 我只是用来测试您可以访问 HDFS 的图像 > 4GB(更好的选择?)
    4. 这些都没有记录(或者至少没有清楚/完整地记录下来,因此我保持更新这篇文章)。我不得不通过 DC/OS 闲聊来寻找答案。
    5. The Mesosphere/HDFS repo 是与通过dcos package install hdfs 安装的 HDFS 完全不同的版本。该 repo 不再维护,新版本尚未开源(因此我猜缺少当前文档)。

    我希望有一种更简单的方式与我仍然缺少的 HDFS 交互。任何更好的解决方案仍然会非常有帮助!

    【讨论】:

      猜你喜欢
      • 2018-06-05
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 2023-02-07
      • 2022-08-19
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多