使用云 SQL 代理从 Dataproc 连接到云 SQL
Connecting to Cloud SQL from Dataproc using the Cloud SQL Proxy
我正在尝试通过 Cloud SQL 代理(不使用 Hive)和 Scala 2.11.12 从 Dataproc 访问 Cloud SQL。 SO 中也有类似的问题,但 none 对我面临的问题有答案。
我已经设法将 Dataproc 连接到 Cloud SQL,将 spark.master 置于 "local" 模式,但在使用 "yarn" 模式时出现异常,所以我'我肯定错过了什么。
我已经创建了一个 GitHub 存储库,这样任何人都可以在本地进行测试,但是您需要有一个 Cloud SQL 实例 运行:https://github.com/mikela/SomeDataprocSparkJob
应用在执行时崩溃:
SparkSession
.builder()
.appName("SomeSparkJob")
.getOrCreate()
我在提交作业时遇到的异常,它执行上面的 .getOrCreate()
:
Exception in thread "main" java.lang.NoSuchFieldError: ASCII
at org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl.checkTags(ApplicationSubmissionContextPBImpl.java:287)
at org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl.setApplicationTags(ApplicationSubmissionContextPBImpl.java:302)
at org.apache.spark.deploy.yarn.Client$$anonfun$createApplicationSubmissionContext.apply(Client.scala:245)
at org.apache.spark.deploy.yarn.Client$$anonfun$createApplicationSubmissionContext.apply(Client.scala:244)
at scala.Option.foreach(Option.scala:257)
at org.apache.spark.deploy.yarn.Client.createApplicationSubmissionContext(Client.scala:244)
at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:180)
at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:57)
at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:183)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:501)
at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520)
at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:935)
at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:926)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926)
at dev.ancor.somedataprocsparkjob.SomeSparkJob$.main(SomeSparkJob.scala:13)
at dev.ancor.somedataprocsparkjob.SomeSparkJob.main(SomeSparkJob.scala)
问题是:为什么在 "yarn" 模式下 运行 时出现异常,我该如何解决?谢谢!
正如 Gabe Weiss 和 David Rabinowitz 所证实的那样,我们可以将 Dataproc 集群和 Cloud SQL 放在 VPC 网络中,然后只使用 private IP。无需使用云 SQL 代理。
我正在尝试通过 Cloud SQL 代理(不使用 Hive)和 Scala 2.11.12 从 Dataproc 访问 Cloud SQL。 SO 中也有类似的问题,但 none 对我面临的问题有答案。
我已经设法将 Dataproc 连接到 Cloud SQL,将 spark.master 置于 "local" 模式,但在使用 "yarn" 模式时出现异常,所以我'我肯定错过了什么。 我已经创建了一个 GitHub 存储库,这样任何人都可以在本地进行测试,但是您需要有一个 Cloud SQL 实例 运行:https://github.com/mikela/SomeDataprocSparkJob
应用在执行时崩溃:
SparkSession
.builder()
.appName("SomeSparkJob")
.getOrCreate()
我在提交作业时遇到的异常,它执行上面的 .getOrCreate()
:
Exception in thread "main" java.lang.NoSuchFieldError: ASCII
at org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl.checkTags(ApplicationSubmissionContextPBImpl.java:287)
at org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl.setApplicationTags(ApplicationSubmissionContextPBImpl.java:302)
at org.apache.spark.deploy.yarn.Client$$anonfun$createApplicationSubmissionContext.apply(Client.scala:245)
at org.apache.spark.deploy.yarn.Client$$anonfun$createApplicationSubmissionContext.apply(Client.scala:244)
at scala.Option.foreach(Option.scala:257)
at org.apache.spark.deploy.yarn.Client.createApplicationSubmissionContext(Client.scala:244)
at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:180)
at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:57)
at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:183)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:501)
at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520)
at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:935)
at org.apache.spark.sql.SparkSession$Builder$$anonfun.apply(SparkSession.scala:926)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926)
at dev.ancor.somedataprocsparkjob.SomeSparkJob$.main(SomeSparkJob.scala:13)
at dev.ancor.somedataprocsparkjob.SomeSparkJob.main(SomeSparkJob.scala)
问题是:为什么在 "yarn" 模式下 运行 时出现异常,我该如何解决?谢谢!
正如 Gabe Weiss 和 David Rabinowitz 所证实的那样,我们可以将 Dataproc 集群和 Cloud SQL 放在 VPC 网络中,然后只使用 private IP。无需使用云 SQL 代理。