Talking with Eric Y. this morning, I realized that I'd messed up. Part of what it means for component C2 to depend on component C1 is that every role for C2 must be configured as a client for C1. To make it concrete, it means that every MapReduce and HBase role must include a HDFS client. The gateways are just the clients of all of the components. So, that leaves us with something like:
HDFS roles: namenode secondarynamenode datanode client MapReduce roles: jobtracker tasktracker jobhistory client HBase roles: hbase-master regionserver client Roles are *not* shared between components (other than client), which will make things easier. Gateways are set up with the union of all of the client roles. Does that make sense? -- Owen
