Я ветеран Java, который пытается изучить Scala + Spark Streaming. Я загрузил Eclipse-платформу Scala IDE + Spark core jar + Spark Streaming jar и 2.10 и попробовал пример - я получаю сообщение об ошибке:
val ssc = new StreamingContext(conf, Seconds(1));
Описание Resource Path Location Тип плохой символической ссылки. Подпись в StreamingContext.class относится к термину conf в пакете org.apache.hadoop, который недоступен. Это может быть полностью отсутствует в текущем пути к классам, или версия на пути к классам может быть несовместима с версией, используемой при компиляции StreamingContext.class. Lab.scala/AirStream/src line 10 Задача Scala
Есть что-то, что я пропустил здесь? все SparkContext не имеет ошибки, но StreamingContext получает эту ошибку во времени.
Убедитесь, что версия hadoop в classpath соответствует той версии, в которой построена искровая струйная банка. Также могут быть некоторые зависимости, которые искрообразующие потоки ожидают от кластерной среды; если это так, вам нужно будет добавить их вручную в classpath при работе в eclipse.
Я столкнулся с примерно такой же проблемой. Вот, как правило, класс scala, который я писал для практики scala/spark:
package practice.spark
import org.apache.spark.SparkContext._
import org.apache.spark._
import org.apache.spark.sql._
object SparkService {
def sparkInit(sparkInstanceConfig: Configuration): SparkService = {
val sparkConf = new SparkConf().setAppName(sparkInstanceConfig.appName)
val instanceSpark = new SparkService(sparkConf)
return instanceSpark
}
}
class SparkService(sparkConf: SparkConf) {
val sc = new SparkContext(sparkConf)
val sql = new org.apache.spark.sql.SQLContext(sc)
}
В свойствах проекта eclipse> Java Build Path> Libraries у меня была библиотека jre8, библиотека scala 2.11, spark-core_2.11 и spark-sql_2.11. Я получил ошибку
Описание Путь к ресурсу Тип пути Недопустимая или недопустимая зависимость, обнаруженная при загрузке файла класса "SparkContext.class". Не удалось получить доступ к термину hasoop в пакете org.apache, потому что он (или его зависимости) отсутствует. Проверьте определение сборки для отсутствующих или противоречивых зависимостей. (Повторите запуск с
-Ylog-classpath
чтобы увидеть проблемный-Ylog-classpath
к классам.) Полная перестройка может помочь, если "SparkContext.class" был скомпилирован против несовместимой версии org.apache. BinAnalysisNew Неизвестная проблема Scala
Затем я добавил банку хаоп-ядра к моему пути сборки Java, и он прояснил эту проблему. Я использовал последнюю версию этой банки.
Эта проблема также может быть устранена с помощью градиента или другого инструмента построения, который будет отображать все зависимости каждой банки, используемой в проекте.