3.1. Understanding Hadoop SSL Keystore Factory

The Hadoop SSL Keystore Factory manages SSL for Hadoop core services that communicate with other cluster services over HTTP, that is MapReduce, YARN, and HDFS. While components that have services that are typically not distributed or only recieve HTTP connections directly from clients use the built-in Java JDK SSL tools, such as HBase, and Oozie.

The following table shows the Hadoop cluster services that use HTTP and support SSL for wire encryption.

 

Table 3.2. Compontents that Support SSL

ComponentServiceSSL Management
HDFSWebHDFSHadoop SSL Keystore Factory
MapReduceShuffleHadoop SSL Keystore Factory
 TaskTrackerHadoop SSL Keystore Factory
YarnResource ManagerHadoop SSL Keystore Factory
 JobHistoryHadoop SSL Keystore Factory
HiveHiveServer2Configured in hive-site.xml
HBaseREST APIConfigured in hbase-site.xml
Solr JDK: User and default
Accumulo JDK: User and default
FalconREST APIJDK: User and default
Oozie Configured in oozie-site.xml
KnoxHadoop cluster (REST client)JDK: default only
 Knox Gateway serverJDK: User and default
HDP Security Administration Server/AgentJDK: User and default


When enabling support for SSL, it is important to know which SSL Management method is used by the Hadoop service. Services that are co-located on a host must have the server certificate and keys, and in some cases the client truststore, configured in both the Hadoop SSL Keystore Factory and JDK locations. When using CA signed certiticates, configure the Hadoop SSL Keystore Factory to use the Java keystore and truststore locations.

The following describes the major differences between certificates managed by JDK and the Hadoop SSL Keystore Factory:

  • Hadoop SSL Keystore Management Factory:

    • Supports only JKS formatted keys

    • Supports toggling the shuffle between HTTP and HTTPS.

    • Supports two way certificate and name validation.

    • Uses a common location for both the keystore and truststore that is available to other Hadoop core services.

    • Allows you to manage SSL in a centeral location and progate changes to all cluster nodes.

    • Automatically reloads the keystore and truststore without restarting services.

  • SSL Management with JDK:

    • Allows either HTTP or HTTPS.

    • Uses hardcoded locations for truststores and keystores that may vary between hosts. And generally requires you to generate key pairs and import certificates on each host.

    • Requires the service to be restarted to reload the keystores and truststores.

    • Requires certificates to be installed in the client CA truststore.

    [Note]Note

    For more information on JDK SSL Management, see Using SSL in Chapter 2: Monitoring and Managing Using JDK.


loading table of contents...