如何通过SSL将作业从EMR群集连接到Aurora?论坛上散布了大量信息,为这个问题带来了部分解决方案,所以我想在这里总结一下。
答案 0 :(得分:0)
有很多关于通过分散在论坛和stackoverflow上的mysql java连接器连接到AWS Aurora Via SSL的信息,所以如果我不包含所有引用,请道歉。
长话短说:将EMR集群中运行的程序与Aurora与ssl连接有两个主要问题:
1)只需将亚马逊提供的rds-combined-ca-bundle.pem导入密钥库即可,因为它会显示" PKIX路径构建失败"错误。
2)java属性javax.net.ssl.keyStore无法从群集的从属服务中获取,因此应用程序将找不到keyStore,它将产生"通信链接失败& #34;
1)的原因似乎与文件rds-combined-ca-bundle.pem有几个证书这一事实有关,因此在我现在没有参考的论坛中,建议的解决方案是拆分这些证书。 Aurora的证书是第8个:
----- BEGIN CERTIFICATE ----- MIID / DCCAuSgAwIBAgIBQzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMTU0MDRaFw0y MDAzMDUyMTU0MDRaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE UyB1cy1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDI UIuwh8NusKHk1SqPXcP7OqxY3S / M2ZyQWD3w7Bfihpyyy / fc1w0 / suIpX3kbMhAV 2ESwged2 / 2zSx4pVnjp / 493r4luhSqQYzru78TuPt9bhJIJ51WXunZW2SWkisSaf USYUzVN9ezR / bjXTumSUQaLIouJt3OHLX49s + 3NAbUyOI8EdvgBQWD68H1epsC0n CI5s + pIktyOZ59c4DCDLQcXErQ + tNbDC ++ oct1ANd / q8p9URonYwGCGOBy7sbCYq 9eVHh1Iy2M + SNXddVOGw5EuruvHoCIQyOz5Lz4zSuZA9dRbrfztNOpezCNYu6NKM 的n + hzcvdiyxv77uNm8EaxAgMBAAGjZjBkMA4GA1UdDwEB / wQEAwIBBjASBgNVHRMB Af8ECDAGAQH / AgEAMB0GA1UdDgQWBBQSQG3TmMe6Sa3KufaPBa72v4QFDzAfBgNV HSMEGDAWgBROAu6sPvYVyEztLPUFwY + chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA L / mOZfB3187xTmjOHMqN2G2oSKHBKiQLM9uv8 + 97qT + XR + TVsBT6b3yoPpMAGhHA Pc7nxAF5gPpuzatx0OTLPcmYucFmfqT / 1qA5WlgCnMNtczyNMH97lKFTNV7Njtek jWEzAEQSyEWrkNpNlC4j6kMYyPzVXQeXUeZTgJ9FNnVZqmvfjip2N22tawMjrCn5 7KN / zN65EwY2oO9XsaTwwWmBu3NrDdMbzJnbxoWcFWj4RBwanR1XjQOVNhDwmCOl / 1Et13b8CPyj69PC8BOVU6cfTSx8WUVy0qvYOKHNY9Bqa5BDnIL3IVmUkeTlM1mt enRpyBj + Bk9rh / ICdiRKmA == -----结束证书-----
因此,如果您在名为bundle8.pem的文件中提取此细分,请按以下方式生成密钥:
keytool -import -alias mysqlServerCACert -file bundle8.pem -keystore truststore
2)的解决方案是将javax.net.ssl.keyStore设置为命令参数,对于spark-submit,该选项应为' - driver-java-options':
spark-submit --deploy-mode cluster --driver-java-options='-Djavax.net.ssl.trustStore=truststore' --files s3://path/to/truststore ..other spark options
成为"信任商店"使用keytool生成的文件。 --driver-java-options将允许信任库文件在从属环境中可用。
参考:
连接到Amazon Aurora数据库群集: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html
使用SSL连接Mysql Java连接器 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html