Anonymous - 2012-02-24

I do always get an error from the zmr-router if i try to send a request:

2012-02-24 10:34:05,447 INFO [zarkov.command.zmr-23422] zmr-router startup
2012-02-24 10:34:09,838 ERROR [zarkov.zmr.router-23422] Error in request handler
Traceback (most recent call last):
File "/home/hgmoll/src/zarkov/lib/python2.7/site-packages/zarkov/zmr/router.py", line 73, in request_handler
obj = util.recv_bson(sock)
File "/home/hgmoll/src/zarkov/lib/python2.7/site-packages/zarkov/util.py", line 38, in recv_bson
msg = sock.recv()
File "/home/hgmoll/src/zarkov/lib/python2.7/site-packages/gevent_zeromq/core.py", line 122, in recv
return super(_Socket, self).recv(flags, copy, track)
File "socket.pyx", line 616, in zmq.core.socket.Socket.recv (zmq/core/socket.c:5961)
File "socket.pyx", line 650, in zmq.core.socket.Socket.recv (zmq/core/socket.c:5832)
File "socket.pyx", line 119, in zmq.core.socket._recv_copy (zmq/core/socket.c:1669)
ZMQError: Operation cannot be accomplished in current state

This is the c code which i use to send the job request. I assume there is still something wrong, but i do not understand why at least 'sock.recv' doesn't work?

Currently i find it rather hard to set up your system. The documentation seems to be a bit outdated. Starting the workers by

zcmd zmr-worker tcp://localhost:5555

fails with the message

Need no more than 0 arguments

Currently i start the workers by using the same config file as for the router:

zcmd -y conf.yaml zmr-worker

It would be extremly helpful if you could outline the map/reduce setup more detailed:

Running a job is actually pretty simple. You need to connect to the zmr request port (by default this is 5555) on the router using a ZeroMQ REQ socket and submit a BSON message of the following format:

Well, it isn't that easy, at least for me ;-) What about a small python script which demonstrates job creation / job handling?