Подключение к облаку SQL из Datapro c с использованием прокси-сервера Cloud SQL - PullRequest
3 голосов
/ 23 января 2020

Я пытаюсь получить доступ к Cloud SQL из Datapro c через Cloud SQL Proxy (без использования Hive) и использую Scala 2.11.12. В SO есть похожие вопросы, но ни у одного из них нет ответа на проблему, с которой я сталкиваюсь.

Мне удалось подключить Datapro c к Cloud SQL, переведя spark.master в "локальный" режим но я получаю исключение при использовании режима «пряжа», поэтому я определенно что-то упускаю. Я создал репозиторий 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$2.apply(Client.scala:245)
        at org.apache.spark.deploy.yarn.Client$$anonfun$createApplicationSubmissionContext$2.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$7.apply(SparkSession.scala:935)
        at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.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)

Вопрос: почему я получаю это исключение при работе на «пряже» режим и как мне это исправить? Спасибо!

1 Ответ

1 голос
/ 24 января 2020

Как подтвердили Гэйб Вайс и Дэвид Рабиновиц, мы можем поместить кластеры Datapro c и Cloud SQL в сеть VP C и просто использовать частный IP . Не нужно использовать Cloud SQL Proxy.

...