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 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.

  • No labels