Cannot make DDFS work on slave node

50 views
Skip to first unread message

want...@gmail.com

unread,
Jan 30, 2015, 10:26:11 AM1/30/15
to disc...@googlegroups.com
Hello,

I have spent a few days trying to fix python2 remnants in python3 debian packages in order to make the python3 .deb pacjkages of disco to run on ubuntu 14.10, but it lead nowhere. However, the python2 disco seems to run, at least. But not DDFS. I found out, that the path to the DISCO_HOME must be identical on the nodes as on the master (not mentioned anywhere) and that the master only runs on IPv4 but not IPv6 (not mentioned anywhere). Finally I can see my DDFS tags listed even on the slave node by entering "ddfs ls", but when I try "ddfs cat ...", I only end up with an error.

Unable to access resource (http://localhost:8989/ddfs/vol0/blob/59/000000000528_vrt$58d-d5f64-50066): Not found. (404)
Failed downloading all replicas: [u'disco://localhost/ddfs/vol0/blob/59/000000000528_vrt$58d-d5f64-50066']

I suppose that is the reason why I can run tasks not using DDFS on the slave as well, but why tasks using DDFS fail on the slave node and only run on the master.

I tried to increase the minimal number of replicas in the master settings to 2, hoping to force the master to make a replica of the data on the slave node as well, but nothing happens.

Is there any more detailed documentation about how DDFS actually works - or how is it supposed to work? (What is happening via port 8989 and what via port 8990? Must these port be accessible on all slave nodes or just the master? What else do I need to set-up on the slave node?)

Thank you,
Pavel

Mark Duske

unread,
Mar 7, 2015, 12:42:48 AM3/7/15
to disc...@googlegroups.com, want...@gmail.com
Hi Pavel,

Give up on trying Python3 on the Disco nodes, Python2 works fine and it seems only the client libs were ported to Python3 (but I would keep it safe and use 2.7 even at the client).

The slave nodes will not create by default a folder DDFS requires, but the master does, simply create it by hand on the slave nodes as part of the setup process "${DISCO_HOME}/ddfs"

The page at "http://disco.readthedocs.org/en/latest/start/install.html" is very good but I myself had some trouble going through it the first time, here is a simple checklist to be sure your slaves will work:
1. Have the same user created on all nodes, master and slaves
2. Ensure all nodes have the SSH authorized keys in place (manually connect from the master to each slave and accept the "server key" as well)
    Even for "localhost", or the master server itself, this step is needed if you use it as a slave as well.
3. Ensure that all nodes have the same Erlang cookie (~/.erlang.cookie) for this allows them to communicate securely after a slave is started by SSH, beware that this file MUST the readable ONLY to the user itself (remove all "group" and "other" permissions) or it will fail
4. a nice tip, if you build a virtual image of a master node, you can use the same image to spawn slave nodes, simply do not start the disco process on the slave instances

The docs at http://disco.readthedocs.org/en/latest/intro.html include information on DDFS but it is better to read it start to end rather to try "referring as you go"...

I have successfully built a Dockerfile to build master and slaves at will, but it uses a framework of mine for DNS synchronization... so it will not help much... if you still have issues let me know and I can make available a VirtualBox image (same can be started as master or slave) ready for use (erlang cookie, ssh, etc....)

Regards,
Mark.
Reply all
Reply to author
Forward
0 new messages