HD Insight Spark получает сообщение от концентратора событий, получая java.lang.NoClassDefFoundError: ошибка org / apache / spark / eventhubs / ConnectionStringBuilder $ - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь настроить соединение с концентратором событий для извлечения сообщений, я могу запустить его в записной книжке Jupyter на портале Azure hdinsight.При попытке установить то же самое в intellij я получаю ниже ошибку.

ОШИБКА: состояние задания не работает ОШИБКА: Диагностика: в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.invoke (Method.java:49pache.sp.sp.yarn.ApplicationMaster $$ anon $ 4.run (ApplicationMaster.scala: 721) Причина: java.lang.ClassNotFoundException: org.apache.spark.eventhubs.ConnectionStringBuilder $ в java.net.URLClassLoader.findClass (URLClassLoader.j):на java.lang.ClassLoader.loadClass (ClassLoader.java:424) на java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... ... еще 7

Пример кода приведен ниже

    import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.eventhubs._
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
import org.apache.spark._
object SparkStreaming_Event {
  def main(args: Array[String]) {
    val sparkConf = new SparkConf().setAppName("StreamEvents")
    val ssc = new StreamingContext(sparkConf, Seconds(10))
    val connectionString = ConnectionStringBuilder("Connectionstring").setEventHubName("Name").build
    val ehConf = EventHubsConf(connectionString)
      .setStartingPosition(EventPosition.fromEndOfStream)
      .setMaxRatePerPartition(10000)
    val stream = EventHubsUtils.createDirectStream(ssc, ehConf)
    stream.print()
    ssc.start()
    ssc.awaitTermination()
  }
}

Любая идея, что мне здесь не хватает, я мог видеть банки под внешними библиотеками.

enter image description here

1 Ответ

0 голосов
/ 11 апреля 2019

У меня все получилось, отвечая на мой вопрос.

Несмотря на то, что мы предоставили зависимости в нашем инструменте сборки, нам нужно будет загрузить соответствующие jar-файлы в Azure, чтобы сделать их доступными для кластера Hdinsight.

1.Загрузить банки в хранилище BLOB-объектов (связано с hdinsight)

2. Укажите путь BLOB-объекта в конфигурации прогона hdinsight в IntelliJ Idea в поле искровых банок, как показано ниже.

wasb: //clustername@blobaccountname.blob.core.windows.net/foldername/jarfile.jar

Надеюсь, это поможет кому-нибудь.

...