AWS Glue对目标连接禁用sslmode

时间:2018-08-20 15:23:53

标签: mysql jdbc etl aws-glue

对于AWS Glue来说还很陌生;我们正在构建一个ETL流程,该流程将数据从MySQL数据库的外部源拉入Redshift。

在添加 ENTRYPOINT java -Djava.rmi.server.hostname=myhost -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=8089 -Dcom.sun.management.jmxremote.rmi.port=8089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar demo-0.0.1-SNAPSHOT.jar 并对其进行测试之后,它将成功连接到实例(没有sslmode)。

log from connection tests

CloudWatch:用于测试连接的日志

connections

似乎该作业因无法分配SSL PKIX路径而失败。我们还尝试禁用JDBC连接字符串中的Container: container_1534777629478_0001_01_000001 on ip-xx-xx-xx-xx.ec2.internal_8041 LogType:stdout Log Upload Time:Mon Aug 20 15:12:58 +0000 2018 LogLength:7583 Log Contents: Traceback (most recent call last): File "script_2018-08-20-15-12-25.py", line 20, in <module> datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "monolith", table_name = "profile_user", transformation_ctx = "datasource0") File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/PyGlue.zip/awsglue/dynamicframe.py", line 559, in from_catalog File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/PyGlue.zip/awsglue/context.py", line 136, in create_dynamic_frame_from_catalog File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/PyGlue.zip/awsglue/data_source.py", line 36, in getFrame File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__ File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/pyspark.zip/pyspark/sql/utils.py", line 63, in deco File "/mnt/yarn/usercache/root/appcache/application_1534777629478_0001/container_1534777629478_0001_01_000001/py4j-0.10.4-src.zip/py4j/protocol.py", line 319, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o62.getDynamicFrame. : com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 49 milliseconds ago. The last packet sent successfully to the server was 46 milliseconds ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:377) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1036) at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:104) at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4812) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1629) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:377) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) at com.amazonaws.services.glue.util.JDBCWrapper$$anonfun$6.apply(JDBCUtils.scala:691) at com.amazonaws.services.glue.util.JDBCWrapper$$anonfun$6.apply(JDBCUtils.scala:690) at com.amazonaws.services.glue.util.JDBCWrapper.com$amazonaws$services$glue$util$JDBCWrapper$$catchSSLException(JDBCUtils.scala:657) at com.amazonaws.services.glue.util.JDBCWrapper.connectWithSSLAttempt(JDBCUtils.scala:652) at com.amazonaws.services.glue.util.JDBCWrapper.connectionProperties$lzycompute(JDBCUtils.scala:689) at com.amazonaws.services.glue.util.JDBCWrapper.connectionProperties(JDBCUtils.scala:673) at com.amazonaws.services.glue.util.JDBCWrapper.getRawConnection(JDBCUtils.scala:706) at com.amazonaws.services.glue.JDBCDataSource.getPrimaryKeys(DataSource.scala:604) at com.amazonaws.services.glue.JDBCDataSource.getDynamicFrame(DataSource.scala:572) at com.amazonaws.services.glue.DataSource$class.getDynamicFrame(DataSource.scala:70) at com.amazonaws.services.glue.SparkSQLDataSource.getDynamicFrame(DataSource.scala:529) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:280) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:214) at java.lang.Thread.run(Thread.java:748) Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052) at sun.security.ssl.Handshaker.process_record(Handshaker.java:987) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397) at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:89) ... 37 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596) ... 45 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392) ,但似乎对工作没有影响。

MySQL版本5.3

任何建议/指导将不胜感激,

谢谢

0 个答案:

没有答案