ПРЕДПОСЫЛКА Я пытаюсь запустить команду 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.
ПРЕДЫДУЩИЕ ПОПЫТКИ Я уже сделал следующее:
- Идентифицировал мой драйвер в моей работе структурированной потоковой передачи как
Class.forName("org.postgresql.Driver")
- добавлен
--jars postgresql-42.1.4.jar \
на мою искровую работу, чтобы отправить банки водителю и исполнителям.В этой попытке этот jar драйвера postgres существует в моей локальной / home / user_name / директории - Также попытался
--jars /usr/lib/spark/jars/postgresql-42.1.4.jar \
в моей работе с искрой-отправкой, в которой искра в emr находит все банки для выполнения - запустил мое задание на отправку с помощью
spark-submit --driver-class-path /usr/lib/spark/jars/postgresql-42.1.4.jar:....
- , добавив
/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