Step 5: Configure the Spark Cluster
Additional configuration required while working with the Spark cluster.
-
In your Cloudera Manager instance, add the following
safety-valve settings for Spark cluster mode:
- For SPARK_ON_YARN>GATEWAY role:
- spark-conf/spark-env.sh_client_config_safety_valve
-
export SPARK_SUBMIT_OPTS="$SPARK_SUBMIT_OPTS --add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR>"
- For SPARK3_ON_YARN > GATEWAY role:
- spark3-conf/spark-env.sh_client_config_safety_valve
-
export SPARK_SUBMIT_OPTS="$SPARK_SUBMIT_OPTS --add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR>"
<BCTLS_JARS_DIR> is the directory containing the SafeLogic bctls and fips core jar files. -
For Spark to work correctly on FIPS, add the following safety-valve
settings:
- For SPARK_ON_YARN>GATEWAY role:
- spark-conf/spark-defaults.conf_client_config_safety_valve
-
spark.yarn.am.extraJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true spark.driver.extraJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true spark.executor.extraJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true
- For SPARK3_ON_YARN > GATEWAY role:
- spark3-conf/spark-defaults.conf_client_config_safety_valve
-
spark.yarn.am.extraJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true spark.driver.defaultJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true spark.executor.defaultJavaOptions=--add-exports=java.base/sun.security.provider=bctls --add-exports=java.base/sun.security.provider=com.safelogic.cryptocomply.fips.core --add-modules=com.safelogic.cryptocomply.fips.core,bctls --module-path=<BCTLS_JARS_DIR> -Dcom.safelogic.cryptocomply.fips.approved_only=true -Djava.net.preferIPv4Stack=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.trustNameService=true -Dorg.bouncycastle.jsse.client.assumeOriginalHostName=true
Where <BCTLS_JARS_DIR> is the directory containing the SafeLogic
bctls
and fips core jar files.