Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Incomplete
-
None
-
None
-
None
-
None
Description
Enhance manageability of Hadoop Services by providing Jute, Thrift, REST, ... APIs to select methods in the Service class (or potentially others).
This will allow external tools written in a myriad of languages to query the state of Hadoop Servers and/or interact with them.
This can be encapsulated in the Service class by defining a very simple interface and then optionally instantiating such an implementation provided in the Configuration.
Some methods to be implemented include all the public methods in Service:
ping() isRunning() terminate() getServiceState() verifyServiceState() isTerminated(),
INTERFACE:
package org.apache.hadoop.util; public interface ExposeServiceAPIs { /** * @param service - the service whose APIs are to be exposed * @param serviceName - a symbolic name for the service * @param configuration - the hadoop configuration object **/ public void initialize(Service service, String serviceName, Configuration conf) throws IOException, public boolean start(); public boolean stop(); } ;
Two straightforward implementations of this would be:
1. Servlet that exposes the APIs via REST
2. Thrift DDL of the service APIs and an implementation in Java + bindings in C++, Java, Perl, Python, Ruby, PHP
Attachments
Issue Links
- depends upon
-
HDFS-326 Add a lifecycle interface for Hadoop components: namenodes, job clients, etc.
- Resolved