Как заставить драйвер и исполнителей загрузить и распознать драйвер postgres в EMR с помощью spark-submit? - PullRequest
1 голос
/ 20 июня 2019

ПРЕДПОСЫЛКА Я пытаюсь запустить команду spark-submit, которая транслируется из Kafka и выполняет прием JDBC в Postgres DB в AWS EMR (версия 5.23.0) и использует scala (версия 2.11.12).).Я вижу следующие ошибки:

INFO TaskSetManager: Lost task 0.3 in stage 0.0 (TID 6) on <master-public-dns-name>, executor 1: java.sql.SQLException (No suitable driver found for jdbc:postgres://... 

ERROR WriteToDataSourceV2Exec: Data source writer org.apache.spark.sql.execution.streaming.sources.MicroBatchWriter@44dd5258 is aborting.
19/06/20 06:11:26 ERROR WriteToDataSourceV2Exec: Data source writer org.apache.spark.sql.execution.streaming.sources.MicroBatchWriter@44dd5258 aborted.

ПРОБЛЕМА ГИПОТЕЗА Я думаю, что эта ошибка говорит мне о том, что драйвер jdbc postgres не может быть найден на исполнителях, поэтому он не может работать на postgres.

ПРЕДЫДУЩИЕ ПОПЫТКИ Я уже сделал следующее:

  1. Идентифицировал мой драйвер в моей работе структурированной потоковой передачи как Class.forName("org.postgresql.Driver")
  2. добавлен --jars postgresql-42.1.4.jar \ на мою искровую работу, чтобы отправить банки водителю и исполнителям.В этой попытке этот jar драйвера postgres существует в моей локальной / home / user_name / директории
  3. Также попытался --jars /usr/lib/spark/jars/postgresql-42.1.4.jar \ в моей работе с искрой-отправкой, в которой искра в emr находит все банки для выполнения
  4. запустил мое задание на отправку с помощью spark-submit --driver-class-path /usr/lib/spark/jars/postgresql-42.1.4.jar:....
  5. , добавив /usr/lib/spark/jars/postgresql-42.1.4.jar к spark.driver.extraClassPath, spark.executor.extraClassPath, spark.yarn.dist.jars, spark.driver.Это jdbc:postgres://master-public-dns-name:5432/DBNAME"

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: Я ожидаю, что мои исполнители распознают драйвер postgres и передадут данные в базу данных postgres.

ПРЕДЫДУЩИЕ ПОПЫТКИ: Я уже использовал следующие предложения, но безрезультатно:

Добавление драйвера JDBC в Spark на EMR

Подходящий драйвер не найденPostgres JDBC

Не найден подходящий драйвер для jdbc: postgresql: //192.168.1.8: 5432 / NexentaSearch

...