So I've deployed a Mesos cluster in AWS using the CloudFormation script / instructions found here with the default cluster settings (5 private slaves, one public slave, single master, all m3.xlarge), and installed HDFS on the cluster with the dcos
command: dcos package install hdfs
.
The HDFS service is apparently up and healthy according to the DC/OS web UI and Marathon:
(the problem) At this point I should be able to SSH into my slave nodes and execute hadoop fs
commands, but that returns the error -bash: hadoop: command not found
(basically telling me there is no hadoop
installed here).
There are no errors coming from the STDOUT and STDERR logging for the HDFS service, but for what its worth there is a recurring "offer decline" message appearing in the logs:
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 …
I'm sure I'm missing something silly.
So I figured out a solution to at least verifying HDFS is running on your Mesos DC/OS cluster after install.
dcos
CLI: dcos node ssh --master-proxy --leader
docker run -ti cloudera/quickstart hadoop fs -ls hdfs://namenode-0.hdfs.mesos:9001/
hdfs://hdfs/
, which instead will throw a java.net.UnknownHostException
. I don't like pointing directly to a namenode.hdfs fs ...
commands when you SSH into your cluster - this does not work as documented.dcos package install hdfs
. That repo is no longer maintained and the new version isn't open sourced yet (hence the lack of current documentation I guess).I'm hoping there is an easier way to interface with HDFS that I'm still missing. Any better solutions would still be very helpful!