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

Haohui Mai commented on HDFS-7887:
----------------------------------

Given the popularity of integrating Hadoop with other native applications, 
there are several attempts to implement a native RPC library. The most recent 
attempts are HADOOP-10389 and HDFS-7013. The jira proposes to combine the 
previous efforts and creates a unified libraries. The existing implementations 
in HADOOP-10389 and HDFS-7013 have several drawbacks:

* The implementation is tightly coupled with the native HDFS client, making it 
unavailable for YARN.
* Both HADOOP-10389 and HDFS-7013 only provide synchronous APIs. It fails to be 
a building block for an asynchronous higher-level client.
* HDFS-7013 uses C++ exceptions extensively throughout the code. The community 
has expressed the concerns on C++ exceptions and would like to get them removed 
before the code is merged.

This jira proposes to implement the following components:

* A compiler that generates stubs from protobuf definitions, which can be taken 
from HADOOP-10389.
* An asynchronous runtime for the Hadoop RPC
* Supports for SASL, wire encryption, and Kerberos authentication, which can be 
taken from HDFS-7013.
* Unit tests, many of which can be taken from HADOOP-10389 and HDFS-7013.



> Asynchronous native RPC v9 client
> ---------------------------------
>
>                 Key: HDFS-7887
>                 URL: https://issues.apache.org/jira/browse/HDFS-7887
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>            Reporter: Haohui Mai
>            Assignee: Haohui Mai
>
> There are more and more integration happening between Hadoop and applications 
> that are implemented using languages other than Java.
> To access Hadoop, applications either have to go through JNI (e.g. libhdfs), 
> or to reverse engineer the Hadoop RPC protocol. (e.g. snakebite). 
> Unfortunately, neither of them are satisfactory:
> * Integrating with JNI requires running a JVM inside the application. Some 
> applications (e.g., real-time processing, MPP database) does not want the 
> footprints and GC behavior of the JVM.
> * The Hadoop RPC protocol has a rich feature set including wire encryption, 
> SASL, Kerberos authentication. Many 3rd-party implementations can fully cover 
> the feature sets thus they might work in limited environment.
> This jira is to propose implementing an Hadoop RPC library in C++ that 
> provides a common ground to implement higher-level native client for HDFS, 
> YARN, and MapReduce.



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

Reply via email to