[
https://issues.apache.org/jira/browse/HADOOP-9160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13538241#comment-13538241
]
Luke Lu commented on HADOOP-9160:
---------------------------------
Great feedback guys. Changed the title to reflect new proposal of JMX as an
alternative protocols for existing admin ops and preferred protocols for new
admin ops.
bq. it would use an entirely separate authentication system from Hadoop RPC – I
don't know a ton about JMX, but it appears to be user/password based? This begs
the question of how it should be configured.
Again, the redundant/separate mechanism is good thing for admin protocols. JMX
supports the standard SSL client cert auth out of the box, which is similar to
kinit with a keytab. While Hadoop security requires a complex 3 way exchanges
between KDC, service and client, that's fairly challenging to debug (in case of
network/firewall issues). SSL is a simple two-way handshake that's fairly
straight forward to debug with wireshark. It's not exactly a piece of cake but
a walk in the park compared with Hadoop security. Don't you think it's a good
thing that you can admin the cluster when KDC flakes out?
For more elaborate installation. One would use a client cert on a admin console
with all the pluggable auth goodies. Now where do I send the bill? :)
bq. I think pulling in a forward-compatible protobuf implementation into
branch-1 would actually be a similar (or less) amount of work compared to
overhauling all of the admin functionality to JMX
How can adding JMX which doesn't impact production code paths be more work? A
typical admin service example in JMX:
{code}
interface SomeAdminMXBean {
void someAdminOp();
void getSomeAdminValue();
void setSomeAdminValue();
}
class SomeAdminService implements SomeAdminMXBean {
...
}
MBeans.register("SomeAdminService", someAdminServiceInstance);
{code}
That's all on the Hadoop side. No code gen, no client side recompilation
required. You can fire up jconsole for dev/debug, or use builtin or plugin jmx
support in Eclipse, NetBeans, IntelliJ etc.
bq. Lastly, though JMX is a standard, in my experience there isn't "wide client
support".
JMX is pretty much supported by all commercial java management software. A few
open source examples that good pretty good feedback:
* [jManage|http://www.jmanage.org/] - full admin console with command line
support.
* [jminix|https://code.google.com/p/jminix/] - a simple, embeddable, restful,
JMX console.
* [jmxcmd|http://sourceforge.net/projects/jmxcmd/] - a simple jmx command line
tool (only a 11kB jar!)
* [jmxterm|http://wiki.cyclopsgroup.org/jmxterm] - a jmx command shell with
optional interactive mode with command completion.
I think it's unreasonable to call JMX tooling "pretty bad", simply because you
cannot find a particular choice that fit your preference perfectly.
> Adopt JMX for management protocols
> ----------------------------------
>
> Key: HADOOP-9160
> URL: https://issues.apache.org/jira/browse/HADOOP-9160
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Luke Lu
>
> Currently we use Hadoop RPC (and some HTTP, notably fsck) for admin
> protocols. We should consider moving all admin protocols to JMX, as it's the
> industry standard for java server management with wide client support.
> Having an alternative/redundant RPC mechanism is very desirable for admin
> protocols. I've seen in the past in multiple cases, where NN and/or JT RPC
> were locked up solid due to various bugs and/or RPC thread pool exhaustion,
> while HTTP and/or JMX worked just fine.
> Other desirable benefits include admin protocol backward compatibility and
> introspectability, which is convenient for a centralized management system to
> manage multiple Hadoop clusters of different versions. Another notable
> benefit is that it's much easier to implement new admin commands in JMX
> (especially with MXBean) than Hadoop RPC, especially in trunk (and 0.23+,
> 2.x).
> Since Hadoop RPC doesn't guarantee backward compatibility (probably not ever
> for branch-1), there is few external tools depending on it. We can keep the
> old protocol for as long as needed. New commands will be in JMX. The
> transition can be gradual and backward-compatible.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira