Какой класс jar & driver будет использоваться при подключении к Greenplum с использованием Spark для чтения данных? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь подключиться к базе данных Greenplum с помощью Spark для чтения данных из таблицы и сохранения их в виде файла на HDFS. Но я сталкиваюсь с препятствиями с драйвером или разъемом, который я использую. Ниже мой файл build.sbt:

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "2.0.0" % "provided",
  "org.apache.spark" %% "spark-sql" % "2.0.0" % "provided",
  "org.json4s" %% "json4s-jackson" % "3.2.11" % "provided",
  "org.apache.httpcomponents" % "httpclient" % "4.5.3"
)

Я передаю разъем greenplum от spark-submit, как показано ниже:

  try {
Class.forName("io.pivotal.greenplum.spark.GreenplumRelationProvider").newInstance()
  }
  catch {
    case cnf: ClassNotFoundException =>
      println("No class def found.")
      System.exit(1)
    case e: Exception =>
      println("No class def found.")
      System.exit(1)
  }


val yearDF = spark.read.format("greenplum").option("url", connectionUrl)
        .option("dbtable", "gptable")
        .option("dbschema","gpschema")
        .option("user", username)
        .option("password", password)
        .option("partitionColumn","id")
        .option("partitions",450)
        .load()
        .where("period=2017 and month=12")
        .select(colSeq map col:_*)
println(yearDF.count)

Команда Spark-submit:

SPARK_MAJOR_VERSION=2 spark-submit --class com.partition.source.PartitionData --master=yarn --conf spark.ui.port=4090 --driver-class-path /home/etluser/jars/greenplum-spark_2.11-1.3.0.jar --conf spark.jars=/home/etluser/jars/greenplum-spark_2.11-1.3.0.jar --executor-cores 3 --executor-memory 13G --keytab /home/etluser/etluser.keytab --principal etluser@HDPDEV.COM --files /usr/hdp/current/spark2-client/conf/hive-site.xml,connection.properties --name TEST_YEAR --conf spark.executor.extraClassPath=/home/etluser/jars/greenplum-spark_2.11-1.3.0.jar testYear_2.11-0.1.jar

colSeq - это коллекция, которая содержит данные столбца и типа данных, каждый из которых разделен запятой.

Когда я запускаю задание, оно вообще не прогрессирует, а вместо этого заканчивается «Нет такого исключения элемента».

Я сослался на код из ссылки , а официальная документация greenplum дает здесь . Это проблема с соединителем (greenplum-spark_2.11-1.3.0.jar) или с драйвером? Может ли кто-нибудь дать мне знать, правильные ли использованные банки?

1 Ответ

0 голосов
/ 29 января 2019

Вы пробовали использовать последнюю версию свечного разъема v.1.6.0?

Во-вторых, вы можете попробовать использовать свой код без "разделов", так как параметр разделов является необязательным?

Кроме того, будет легче отладить эту проблему, если вы сможете обеспечить полную трассировку стека.

Ссылка: https://greenplum -spark.docs.pivotal.io / 160 / index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...