[ 
https://issues.apache.org/jira/browse/HDFS-8154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14497038#comment-14497038
 ] 

Jakob Homan commented on HDFS-8154:
-----------------------------------

Currently WebHDFS exists as a [human-readable 
specification|https://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html]
 and a single implementation, that provided by the NameNode and its DataNodes.  
We should extract WebHDFS out as a specification, which would allow easier 
implementation of both WebHDFS-backed servers and clients.  Additionally, this 
would make it easier to generate documentation and verify correctness.
The current human-readable spec makes it possible to implement WebHDFS clients 
(for example, 
[Perl|http://search.cpan.org/~afaris/Apache-Hadoop-WebHDFS-0.04/lib/Apache/Hadoop/WebHDFS.pm],
 [Python|https://pypi.python.org/pypi/pywebhdfs], 
[.NET|https://hadoopsdk.codeplex.com/wikipage?title=WebHDFS%20Client] , 
[non-Hadoop backed JVM|https://issues.apache.org/jira/browse/HADOOP-10741], 
etc.).  However, each client must be built by someone parsing out that spec and 
writing up their own client implementation from scratch.

There are frameworks, such as [Swagger|http://swagger.io/] and 
[RAML|http://raml.org/] that allow one to define a REST interface and then 
create documentation, generate client stubs and built tests against that 
framework.
In addition to clients, an more programmatic WebHDFS specification would allow 
other backend systems to more easily implement the WebHDFS interface.  Any 
Hadoop application would then be able to access that back end through the 
oah.WebHDFSFileSystem or through one of the non-JVM clients described above.

This JIRA will cover specifying the WebHDFS spec in a framework like Swaggger 
or RAML, switching the WebHDFS documentation to be built from this so as to be 
authoritative, and verifying that the current implementation provided by the 
namenode and datanodes comports with this specification.

> Extract WebHDFS protocol out as a specification to allow easier clients and 
> servers
> -----------------------------------------------------------------------------------
>
>                 Key: HDFS-8154
>                 URL: https://issues.apache.org/jira/browse/HDFS-8154
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>          Components: webhdfs
>            Reporter: Jakob Homan
>            Assignee: Jakob Homan
>
> WebHDFS would be more useful if there were a programmatic description of its 
> interface, which would allow one to more easily create servers and clients.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to