【发布时间】:2020-12-18 21:58:33
【问题描述】:
我在使用 AWS 粘合作业连接到 Presto 时遇到问题。代码是用 Spark Scala 编写的。我正在尝试使用以下代码连接到 Presto。
val datanot_in_hz = sqlcontext.read.format("jdbc").option("url", jdbcConUrl).option("driver", "io.prestosql.jdbc.PrestoDriver").option("SSL","true").option("SSLKeyStorePath","s3://test/presto_client.keystore").option("query", datanot_in_hz_sql).option("user", dbUserName).option("password", dbPassword).load()
我收到以下错误
2020-12-18 20:36:52,376 错误 [主] 胶水.ProcessLauncher (Logging.scala:logError(70)):用户类中的异常: java.sql.SQLException:设置 SSL 时出错: s3:/test/presto_client.keystore (没有这样的文件或 目录) io.prestosql.jdbc.PrestoDriverUri.setupClient(PrestoDriverUri.java:235) io.prestosql.jdbc.PrestoDriver.connect(PrestoDriver.java:88) org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils.scala:63) org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils.scala:54) org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:56) org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation$.getSchema(JDBCRelation.scala:210) org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:35) org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:318) org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223) org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211) org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:167) sddsurwithDAXreporting$.main(sddsurwithDAXreportingPresto.scala:89) sddsurwithDAXreporting.main(sddsurwithDAXreportingPresto.scala) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) com.amazonaws.services.glue.SparkProcessLauncherPlugin$class.invoke(ProcessLauncher.scala:38) com.amazonaws.services.glue.ProcessLauncher$$anon$1.invoke(ProcessLauncher.scala:67) com.amazonaws.services.glue.ProcessLauncher.launch(ProcessLauncher.scala:108) com.amazonaws.services.glue.ProcessLauncher$.main(ProcessLauncher.scala:21) com.amazonaws.services.glue.ProcessLauncher.main(ProcessLauncher.scala)
我尝试通过 pem 证书,但仍然失败并出现同样的错误。我已经检查了所有的许可。我有一个从同一个文件夹访问的 jar 文件,我可以访问它。 当我使用 Eclipse 从我的机器上运行相同的代码时,它运行良好。有人可以帮忙吗?我对 scala 相当陌生,这是我第一次尝试使用 SSL 证书连接到数据库。
【问题讨论】:
-
我认为 s3 路径不起作用。
标签: scala apache-spark ssl aws-glue aws-glue-spark