Uh oh!
There was an error while loading. Please reload this page.
[SPARK-5682][Core] Add encrypted shuffle in spark - #8880
Conversation
vanzin
commented
Sep 23, 2015
ok to test |
SparkQA
commented
Sep 23, 2015
Test build #42941 has finished for PR 8880 at commit
|
rxin
commented
Sep 24, 2015
Can you please add some high level documentation about this change? |
4a95c73 to
67b391eComparewinningsix
commented
Sep 24, 2015
@rxin, the design document is available in https://issues.apache.org/jira/secure/attachment/12730704/Design%20Document%20of%20Encrypted%20Spark%20Shuffle_20150506.docx which is an attachment of SPARK-5682. This PR is trying to add the basic shuffle encryption workflow and JCE key provider support. Next step we will add openssl crypto codec to improve the encryption performance (~17x expected with AES-NI enabled). |
SparkQA
commented
Sep 24, 2015
Test build #42953 timed out for PR 8880 at commit |
SparkQA
commented
Aug 25, 2016
Test build #64408 has finished for PR 8880 at commit
|
| if (master == "yarn" && deployMode == "client") System.setProperty("SPARK_YARN_MODE", "true") | ||
| if (_conf.get(IO_ENCRYPTION_ENABLED) && !SparkHadoopUtil.get.isYarnMode()) { | ||
| throw new SparkException("IO encryption is only supported in YARN mode, please disable it " + | ||
| "by setting spark.io.encryption.enabled to false") |
There was a problem hiding this comment.
nit: use ${IO_ENCRYPTION_ENABLED.key} instead of the hardcoded key name.
| def toCryptoConf( | ||
| conf: SparkConf, | ||
| sparkPrefix: String, | ||
| cryptoPrefix: String): Properties = { |
There was a problem hiding this comment.
nit: you don't need sparkPrefix and cryptoPrefix any more.
zsxwing
commented
Aug 25, 2016
Looks pretty overall. Just a high level question: Why needs to generate a new key for IO encryption? Can we just use |
vanzin
commented
Aug 25, 2016
They could be different sizes (different config options control that). We could change it so both use the same configs / same code to generate the keys, but in general if they're used for different things I prefer to have different configs, at least. |
| <td><code>spark.io.encryption.enabled</code></td> | ||
| <td>false</td> | ||
| <td> | ||
| Enable IO encryption. |
There was a problem hiding this comment.
Please say it only supports Yarn mode here.
zsxwing
commented
Aug 25, 2016
Sounds good to me |
SparkQA
commented
Aug 26, 2016
Test build #64451 has finished for PR 8880 at commit
|
| <td><code>spark.io.encryption.enabled</code></td> | ||
| <td>false</td> | ||
| <td> | ||
| Enable IO encryption. It only supports YARN mode. |
| val encryptedBytes = outputStream.toByteArray | ||
| val encryptedStr = new String(encryptedBytes) | ||
| assert (plainStr !== encryptedStr) |
vanzin
commented
Aug 29, 2016
LGTM. Any remaining comments @zsxwing ? |
SparkQA
commented
Aug 29, 2016
Test build #64582 has finished for PR 8880 at commit
|
zsxwing
commented
Aug 30, 2016
LGTM |
SparkQA
commented
Aug 30, 2016
Test build #64614 has finished for PR 8880 at commit
|
vanzin
commented
Aug 30, 2016
Merging to master. |
This patch is using Apache Commons Crypto library to enable shuffle encryption support. Author: Ferdinand Xu <cheng.a.xu@intel.com> Author: kellyzly <kellyzly@126.com> Closesapache#8880 from winningsix/SPARK-10771.
This patch is using Apache Commons Crypto library to enable shuffle encryption support.