Handling Kerberos is similar to what we have done for WebHDFS now. Kerby will be in the picture but things are much simpler.
If protobuf is a concern, why not shading it into hadoop-common? The generated binaries might not be compatible but the wire format is. On Mon, Feb 29, 2016 at 1:55 AM Steve Loughran <ste...@hortonworks.com> wrote: > > > On 27 Feb 2016, at 19:02, Haohui Mai <ricet...@gmail.com> wrote: > > > > Have we evaluated GRPC? A robust RPC requires significant effort. > Migrating > > to GRPC can save ourselves a lot of headache. > > > > That's the google protobuf 3 based GRPC? More specifically, > protobufVersion = '3.0.0-beta-2'? > > That's successor to the protobuf.jar whose Alejandro-choreographed > cross-project upgrade caused the "great protobuf upgrade of 2013"? That's > the protobuf library where some of us have seriously considered forking the > library so that we could have a version of protobuf which would link across > java classes generated with older versions? > > We have enough problems working with a released version of protobuf > breaking across minor point releases, whose guava JARs are a recurrent > source of cross version compatibility pain? > > > I would rather stab myself in the leg with a fork —repeatedly— than adopt > something based on a beta-release of a google artifact as critical path of > the Hadoop RPC chain. > > While google are pretty obsessive about wire format compatibility across > languages and versions, we just can't trust google to maintain binary > compatibility, primarily due to a build process which clean builds > everything from scratch. They don't have the same problem of trying to > nudge things up across a loosely coupled set of projects, including those > who still have requirements of JAR-sharing compatibility with older hadoop > versions. Indeed, for those projects, being backwards compatible with > Hadoop 1.x (no protobuf) is easier than working with Hadoop 2.205, purely > due to to that protobuf difference. > > > Even when protobuf 3.0 finally ships, we should hold back even adopting > it for its current role until 3.1 comes out so we can asses google's > compatibility policy in the 3.x line. > > > > Haohui > > On Sat, Feb 27, 2016 at 1:35 AM Andrew Purtell <andrew.purt...@gmail.com > > > > wrote: > > > >> I get a excited thinking about the prospect of better performance with > >> auth-conf QoP. HBase RPC is an increasingly distant fork but still close > >> enough to Hadoop in that respect. Our bulk data transfer protocol isn't > a > >> separate thing like in HDFS, which avoids a SASL wrapped > implementation, so > >> we really suffer when auth-conf is negotiated. You'll see the same > impact > >> where there might be a high frequency of NameNode RPC calls or similar > >> still. Throughput drops 3-4x, or worse. > >> > >>> On Feb 22, 2016, at 4:56 PM, Zheng, Kai <kai.zh...@intel.com> wrote: > >>> > >>> Thanks for the confirm and further inputs, Steve. > >>> > >>>>> the latter would dramatically reduce the cost of wire-encrypting IPC. > >>> Yes to optimize Hadoop IPC/RPC encryption is another opportunity Kerby > >> can help with, it's possible because we may hook Chimera or AES-NI thing > >> into the Kerberos layer by leveraging the Kerberos library. As it may be > >> noted, HADOOP-12725 is on the going for this aspect. There may be good > >> result and further update on this recently. > >>> > >>>>> For now, I'd like to see basic steps -upgrading minkdc to krypto, see > >> how it works. > >>> Yes, starting with this initial steps upgrading MiniKDC to use Kerby is > >> the right thing we could do. After some interactions with Kerby > project, we > >> may have more ideas how to proceed on the followings. > >>> > >>>>> Long term, I'd like Hadoop 3 to be Kerby-ized > >>> This sounds great! With necessary support from the community like > >> feedback and patch reviewing, we can speed up the related work. > >>> > >>> Regards, > >>> Kai > >>> > >>> -----Original Message----- > >>> From: Steve Loughran [mailto:ste...@hortonworks.com] > >>> Sent: Monday, February 22, 2016 6:51 PM > >>> To: common-dev@hadoop.apache.org > >>> Subject: Re: Introduce Apache Kerby to Hadoop > >>> > >>> > >>> > >>> I've discussed this offline with Kai, as part of the "let's fix > >> kerberos" project. Not only is it a better Kerberos engine, we can do > more > >> diagnostics, get better algorithms and ultimately get better APIs for > doing > >> Kerberos and SASL —the latter would dramatically reduce the cost of > >> wire-encrypting IPC. > >>> > >>> For now, I'd like to see basic steps -upgrading minkdc to krypto, see > >> how it works. > >>> > >>> Long term, I'd like Hadoop 3 to be Kerby-ized > >>> > >>> > >>>> On 22 Feb 2016, at 06:41, Zheng, Kai <kai.zh...@intel.com> wrote: > >>>> > >>>> Hi folks, > >>>> > >>>> I'd like to mention Apache Kerby [1] here to the community and propose > >> to introduce the project to Hadoop, a sub project of Apache Directory > >> project. > >>>> > >>>> Apache Kerby is a Kerberos centric project and aims to provide a first > >> Java Kerberos library that contains both client and server supports. The > >> relevant features include: > >>>> It supports full Kerberos encryption types aligned with both MIT KDC > >>>> and MS AD; Client APIs to allow to login via password, credential > >>>> cache, keytab file and etc.; Utilities for generate, operate and > >>>> inspect keytab and credential cache files; A simple KDC server that > >>>> borrows some ideas from Hadoop-MiniKDC and can be used in tests but > >>>> with minimal overhead in external dependencies; A brand new token > >> mechanism is provided, can be experimentally used, using it a JWT token > can > >> be used to exchange a TGT or service ticket; Anonymous PKINIT support, > can > >> be experientially used, as the first Java library that supports the > >> Kerberos major extension. > >>>> > >>>> The project stands alone and is ensured to only depend on JRE for > >> easier usage. It has made the first release (1.0.0-RC1) and 2nd release > >> (RC2) is upcoming. > >>>> > >>>> > >>>> As an initial step, this proposal suggests using Apache Kerby to > >> upgrade the existing codes related to ApacheDS for the Kerberos support. > >> The advantageous: > >>>> > >>>> 1. The kerby-kerb library is all the need, which is purely in Java, > >>>> SLF4J is the only dependency, the whole is rather small; > >>>> > >>>> 2. There is a SimpleKDC in the library for test usage, which borrowed > >>>> the MiniKDC idea and implemented all the support existing in MiniKDC. > >>>> We had a POC that rewrote MiniKDC using Kerby SimpleKDC and it works > >>>> fine; > >>>> > >>>> 3. Full Kerberos encryption types (many of them are not available in > >>>> JRE but supported by major Kerberos vendors) and more functionalities > >>>> like credential cache support; > >>>> > >>>> 4. Perhaps the most concerned, Hadoop MiniKDC and etc. depend on the > >>>> old Kerberos implementation in Directory Server project, but the > >>>> implementation is stopped being maintained. Directory project has a > >>>> plan to replace the implementation using Kerby. MiniKDC can use Kerby > >>>> directly to simplify the deps; > >>>> > >>>> 5. Extensively tested with all kinds of unit tests, already being used > >>>> for some time (like PSU), even in production environment; > >>>> > >>>> 6. Actively developed, and can be fixed and released in time if > >> necessary, separately and independently from other components in Apache > >> Directory project. By actively developing Apache Kerby and now applying > it > >> to Hadoop, our side wish to make the Kerberos deploying, troubleshooting > >> and further enhancement can be much easier and thereafter possible. > >>>> > >>>> > >>>> > >>>> Wish this is a good beginning, and eventually Apache Kerby can benefit > >> other projects in the ecosystem as well. > >>>> > >>>> > >>>> > >>>> This Kerberos related work is actually a long time effort led by > Weihua > >> Jiang in Intel, and had been kindly encouraged by Andrew Purtell, Steve > >> Loughran, Gangumalla Uma, Andrew Wang and etc., thanks a lot for their > >> great discussions and inputs in the past. > >>>> > >>>> > >>>> > >>>> Your feedback is very welcome. Thanks in advance. > >>>> > >>>> > >>>> > >>>> [1] https://github.com/apache/directory-kerby > >>>> > >>>> > >>>> > >>>> Regards, > >>>> > >>>> Kai > >>> > >> > >