General
Since Apache Hama 0.4.0 we provide the functionality to implement your own Messaging Service.
Apache Hama already ships with a default implementation of Apache Hadoop RPC, but there are a plenty of other RPC protocols (ProtoBuf, Avro, Thrift) that can be used for it as well.
Architecture
Each task has its own MessageManager which is responsible for starting an Server where messages can be received and send to other servers.
The default implementation of Apache Hama is org.apache.hama.bsp.message.HamaMessageManagerImpl
which uses Hadoop's RPC mechanisms.
Adding more implementations
We aim to add alot more RPC frameworks to Apache Hama for the next upcoming releases.
If you're interested in implementing another framework for communication please let us know at the dev-mailing list or post in this JIRA issue.
Configuring
Your implemenation can be set by the configuration values:
hama.messenger.class
Make sure this configuration is consistent on every host in every configuration. And make sure that the class has a public default constructure since it will be instantiated via reflection.