无法访问 Mesosphere DC/OS 上的 HDFS,尽管 "healthy" 状态
Can't access HDFS on Mesosphere DC/OS despite "healthy" status
因此,我使用 CloudFormation 脚本/指令在 AWS 中部署了一个 Mesos 集群 here,默认集群设置(5 个私有从属、一个 public 从属、单个主、所有 m3.xlarge),并使用dcos
命令在集群上安装HDFS:dcos package install hdfs
.
根据 DC/OS 网络 UI 和 Marathon,HDFS 服务显然正常运行:
(问题) 此时我应该能够通过 SSH 进入我的从属节点并执行 hadoop fs
命令,但是 returns 错误-bash: hadoop: command not found
(基本上告诉我这里没有安装hadoop
)。
没有来自 HDFS 服务的 STDOUT 和 STDERR 日志记录的错误,但就其价值而言,日志中出现了一条重复出现的 "offer decline" 消息:
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 …
我确定我漏掉了一些愚蠢的东西。
所以我找到了 a 解决方案,至少可以在安装后验证 HDFS 在您的 Mesos DC/OS 集群上 运行ning。
- 使用
dcos
CLI 通过 SSH 连接到您的 master:dcos node ssh --master-proxy --leader
- 创建一个安装了 hadoop 的 docker 容器来查询您的 HDFS:
docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/
为什么这不是一个好的解决方案以及需要注意什么:
- Previous documentation 都指向
hdfs://hdfs/
的默认 URL,它会抛出 java.net.UnknownHostException
。我不喜欢直接指向一个名称节点。
- Other documentation 建议您可以 运行
hdfs fs ...
命令,当您通过 SSH 进入您的集群时 - 这并不像记录的那样工作。
- 我用来测试您是否可以访问 HDFS 的映像 > 4GB(更好的选择?)
- None 已记录(或至少未记录 clearly/completely,因此我保持此 post 更新)。我不得不通过 DC/OS 闲聊来寻找答案。
- The Mesosphere/HDFS repo 是一个与通过
dcos package install hdfs
安装的 HDFS 完全不同的版本。该回购不再维护,新版本尚未开源(因此我猜缺少当前文档)。
我希望有一种更简单的方法来连接我仍然缺少的 HDFS。任何更好的解决方案仍然会很有帮助!
因此,我使用 CloudFormation 脚本/指令在 AWS 中部署了一个 Mesos 集群 here,默认集群设置(5 个私有从属、一个 public 从属、单个主、所有 m3.xlarge),并使用dcos
命令在集群上安装HDFS:dcos package install hdfs
.
根据 DC/OS 网络 UI 和 Marathon,HDFS 服务显然正常运行:
(问题) 此时我应该能够通过 SSH 进入我的从属节点并执行 hadoop fs
命令,但是 returns 错误-bash: hadoop: command not found
(基本上告诉我这里没有安装hadoop
)。
没有来自 HDFS 服务的 STDOUT 和 STDERR 日志记录的错误,但就其价值而言,日志中出现了一条重复出现的 "offer decline" 消息:
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 …
我确定我漏掉了一些愚蠢的东西。
所以我找到了 a 解决方案,至少可以在安装后验证 HDFS 在您的 Mesos DC/OS 集群上 运行ning。
- 使用
dcos
CLI 通过 SSH 连接到您的 master:dcos node ssh --master-proxy --leader
- 创建一个安装了 hadoop 的 docker 容器来查询您的 HDFS:
docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/
为什么这不是一个好的解决方案以及需要注意什么:
- Previous documentation 都指向
hdfs://hdfs/
的默认 URL,它会抛出java.net.UnknownHostException
。我不喜欢直接指向一个名称节点。 - Other documentation 建议您可以 运行
hdfs fs ...
命令,当您通过 SSH 进入您的集群时 - 这并不像记录的那样工作。 - 我用来测试您是否可以访问 HDFS 的映像 > 4GB(更好的选择?)
- None 已记录(或至少未记录 clearly/completely,因此我保持此 post 更新)。我不得不通过 DC/OS 闲聊来寻找答案。
- The Mesosphere/HDFS repo 是一个与通过
dcos package install hdfs
安装的 HDFS 完全不同的版本。该回购不再维护,新版本尚未开源(因此我猜缺少当前文档)。
我希望有一种更简单的方法来连接我仍然缺少的 HDFS。任何更好的解决方案仍然会很有帮助!