尽管处于“健康”状态,但无法在Mesosphere DC / OS上访问HDFS

时间:2016-08-09 16:33:50

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

所以我使用CloudFormation脚本/指令{@ 3}}在AWS中部署了Mesos集群,其中包含默认群集设置(5个私有从属,1个公共从属,单个主服务器,所有m3.xlarge),并已安装使用dcos命令的群集上的HDFS:dcos package install hdfs

根据DC / OS网络用户界面和马拉松,HDFS服务显然更健康: here

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

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 …

我确定我错过了一些愚蠢的事情。

1 个答案:

答案 0 :(得分:2)

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

  1. 使用dcos CLI将SSH连接到您的主服务器:dcos node ssh --master-proxy --leader
  2. 创建一个安装了hadoop的docker容器,以查询您的HDFS:docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/
  3. 为什么这不是一个好的解决方案&需要注意的是:

    1. Previous documentation都指向默认网址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不再维护,新版本尚未开源(因此缺乏当前的文档)。
    6. 我希望有一种更简单的方式来与我仍然缺失的HDFS进行交互。任何更好的解决方案仍然会非常有用!