[ https://issues.apache.org/jira/browse/HDFS-6994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14123627#comment-14123627 ]
Colin Patrick McCabe commented on HDFS-6994: -------------------------------------------- Hi Zhanwei, this is really interesting. As Wenwu mentioned, there's already a branch where we're working on a native client. It would be nice if we could integrate this with that work somehow. I'm not sure what form that should take. Did you get a chance to read the design doc on HADOOP-10388? There are a few issues important here before this can replace libhdfs. We need the ability to fall back to the JNI code when necessary-- for example, in the case where HDFS is using encryption, and we don't have native client support for that. But we don't want a hard library dependency on libjvm.so-- it should be dynamically loaded. It's good that you are using the existing hdfs.h interface. getLastError seems like it could be a good addition, as well... when using thread-local data for the string. The dependencies here are problematic. libxml2 is not fully thread-safe, and it pulls in a lot of GNOME stuff we don't really want. The boost dependency creates problems as well. For example, Impala depends on a certain version of boost-- if this library pulls in a different version, bad things happen. GnuTls is LGPL, which makes it difficult to ship. I would have to be -1 just based on the dependencies alone... We also have duplicated protobuf files in this patch. We should simply use the protobuf files in the source tree already. If I could summarize my first thoughts: * get rid of boost, including all boost ifdefs * don't worry about earlier RPC versions... we only need to support RPCv9 now (same as Java client code policy in Hadoop) * use libexpat or something instead of libxml2 This is good work overall and hopefully there is stuff we can use here. > libhdfs3 - A native C/C++ HDFS client > ------------------------------------- > > Key: HDFS-6994 > URL: https://issues.apache.org/jira/browse/HDFS-6994 > Project: Hadoop HDFS > Issue Type: Task > Components: hdfs-client > Reporter: Zhanwei Wang > Attachments: HDFS-6994-rpc-8.patch, HDFS-6994.patch > > > Hi All > I just got the permission to open source libhdfs3, which is a native C/C++ > HDFS client based on Hadoop RPC protocol and HDFS Data Transfer Protocol. > libhdfs3 provide the libhdfs style C interface and a C++ interface. Support > both HADOOP RPC version 8 and 9. Support Namenode HA and Kerberos > authentication. > libhdfs3 is currently used by HAWQ of Pivotal > I'd like to integrate libhdfs3 into HDFS source code to benefit others. > You can find libhdfs3 code from github > https://github.com/PivotalRD/libhdfs3 -- This message was sent by Atlassian JIRA (v6.3.4#6332)