Hi Devs,

  Some of our Hadoop developers working with Spark community to implement the 
shuffle encryption. While implementing that, they realized some/most of the 
code in Hadoop encryption code and their  implemention code have to be 
duplicated. This leads to an idea to create separate library, named it as 
Chimera (https://github.com/intel-hadoop/chimera). It is an optimized 
cryptographic library. It provides Java API for both cipher level and Java 
stream level to help developers implement high performance AES 
encryption/decryption with the minimum code and effort. Chimera was originally 
based Hadoop crypto code but was improved and generalized a lot for supporting 
wider scope of data encryption needs for more components in the community.

So, now team is thinking to make this library code as open source project via 
Apache Incubation.  Proposal is Chimera to join the Apache as incubating or 
Apache commons for facilitating its adoption.

In general this will get the following advantages:
1. As Chimera embedded the native in jar (similar to Snappy java), it solves 
the current issues in Hadoop that a HDFS client has to depend libhadoop.so if 
the client needs to read encryption zone in HDFS. This means a HDFS client may 
has to depend a Hadoop installation in local machine. For example, HBase uses 
depends on HDFS client jar other than a Hadoop installation and then has no 
access to libhadoop.so. So HBase cannot use an encryption zone or it cause 
error.
2. Apache Spark shuffle and spill encryption could be another example where we 
can use Chimera. We see the fact that the stream encryption for Spark shuffle 
and spill doesn’t require a stream cipher like AES/CTR, although the code 
shares the common characteristics of a stream style API. We also see the need 
of optimized Cipher for non-stream style use cases such as network encryption 
such as RPC. These improvements actually can be shared by more projects of need.

3. Simplified code in Hadoop to use dedicated library. And drives more 
improvements. For example, current the Hadoop crypto code API is totally based 
on AES/CTR although it has cipher suite configurations.

AES/CTR is for HDFS data encryption at rest, but it doesn’t necessary to be 
AES/CTR for all the cases such as Data transfer encryption and intermediate 
file encryption.



 So, we wanted to check with Hadoop community about this proposal. Please 
provide your feedbacks on it.

Regards,
Uma

Reply via email to