因此,我在aws中使用cloudformation脚本/指令部署了一个mesos集群,该脚本/指令使用默认集群设置(5个私有从属、一个公共从属、单个主服务器、所有m3.xlarge),并在集群上安装了hdfs dcos
命令: dcos package install hdfs
.
根据dc/os web ui和marathon,hdfs服务显然正常运行:
(问题)在这一点上,我应该能够ssh到我的从属节点并执行 hadoop fs
命令,但返回错误 -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 …
我肯定我错过了一些愚蠢的事情。
1条答案
按热度按时间iyfjxgzm1#
所以我想出了一个解决方案,至少可以在安装后验证hdfs是否在mesos dc/os集群上运行。
和你的主人在一起
dcos
客户端:dcos node ssh --master-proxy --leader
创建一个安装了hadoop的docker容器来查询您的hdfs:docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/
###为什么这不是一个好的解决方案&注意什么:以前的文档都指向
hdfs://hdfs/
,它将抛出一个java.net.UnknownHostException
. 我不喜欢直接指向namenode。其他文档建议您可以运行
hdfs fs ...
当您使用ssh连接到集群时的命令-这并不像文档中描述的那样有效。我刚才用来测试您是否可以访问hdfs的图像大于4gb(更好的选择?)
这些都没有记录在案(或者至少没有清楚/完整地记录在案,所以我要更新这篇文章)。我不得不在dc/os闲聊中寻找答案。
中间层/hdfs repo与通过安装的hdfs是完全不同的版本
dcos package install hdfs
. 回购协议不再被维护,新版本还没有开源(因此我想缺乏最新的文档)。我希望有一个更简单的方法来与hdfs接口,但我还没有找到。任何更好的解决方案都会非常有用!