2016-03-31 2 views
0

Я получаю ошибку ниже:Спарк Scala Flumeutill не найдено

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/flume/FlumeUtils$ at SampleStream$.main(NetworkWordCount.scala:10) at SampleStream.main(NetworkWordCount.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:665) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.flume.FlumeUtils$ at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

я см ниже ссылку

https://spark.apache.org/docs/1.4.1/streaming-flume-integration.html

ответ

0

Вам нужно упаковать искровые потоковый желобе и его зависимость (за исключением искрового ядра и искровым вытекание, которые предусмотрены искрой подать) в JAR приложения.

https://spark.apache.org/docs/1.6.1/streaming-flume-integration.html имеет лучшее описание о развертывании. Вы можете использовать этот документ, поскольку нет изменений API от 1.4 до 1.6.

+0

, как для упаковки spark-streaming-flume-sink_2.10-1.4.1.jar с кодом при построении с использованием SBT –

+0

Вы можете использовать '--packages' для запуска, как этот' ./bin/spark-submit -packages org.apache .spark: spark-streaming-flume_2.10: 1.6.1', и он добавит их в путь пути выполнения. – zsxwing

+0

'spark-submit streamingApp.jar --class com.hexa.twtsteam.SampleStream --packages org.apache.spark-streaming-flume_2.10: 1.4.1' Все еще получать ошибку –

0

Вы должны иметь все библиотеки загружены в пути к классам. Добавить в build.sbt файл: libraryDependencies += "org.apache.spark" % "spark-streaming-flume_2.10" % "1.6.1"

+0

Я уже добавляю эти зависимости в своем SBT –

+0

Как вы используете приложение? искровым представить? Вам нужно сделать большой размер JAR-файла. Используйте плагин искровой сборки. Или добавьте эти JAR-файлы в путь к классам при отправке приложения. – gabriel9

+0

'spark-submit flume_2.10-1.0.jar --class com.hexa.twtsteam.SampleStream --packages org.apache.spark-streaming-flume_2.10: 1.4.1' это команда, я использую –