Как добавить созданный мной Breeze в Apache Spark?

Я добавил несколько методов в библиотеку Breeze и вижу эти методы через IDE. И я пытался добавить библиотеку Breeze, которую я создал сам, в свой проект, основанный на Apache Spark. Однако, когда я упаковываю свой проект с помощью команды «sbt Assembly» и запускаю его в своем кластере, он выдает ошибку «нет такого метода xxx», что означает, что кластер на самом деле не запускал мою библиотеку Breeze. Так может ли кто-нибудь сказать мне, как заставить кластер запускать библиотеку Breeze, которую я собираю?


person Mark    schedule 06.04.2015    source источник


Ответы (1)


У меня есть предположение, что spark использует какую-то версию библиотек Breeze и предпочитает их вам, а не вашим пользовательским .jars в сборке. Вы можете попробовать создать искру с помощью своей пользовательской библиотеки. Установите свою библиотеку в свой локальный репозиторий maven, укажите ее в pom.xml apache spark и создайте свою собственную версию spark.

person Nikita    schedule 06.04.2015
comment
У меня есть сборка бриза и публикация его в репозиторий .m2, а также сборка искры с помощью команды maven mvn package. После этого я заменил spark-assembly-1.3.0-hadoop1.0.4.jar в папке lib Spark, которая находится в моем кластере, на JAR-файл с таким же именем, который только что был собран. Я также помещаю эту банку в папку lib моего проекта и упаковываю свой проект командой sbt Assembly. Когда я отправляю свой проект в кластер, он выдает следующие ошибки: Потерянная задача 126.2 на этапе 0.0 (TID 449) на исполнителе sr476: java.lang.NoClassDefFoundError (Не удалось инициализировать класс breeze.linalg.DenseVector$) [дубликат 200] - person Mark; 10.04.2015
comment
Вы получаете java.lang.NoClassDefFoundError, а не java.lang.ClassNotFoundException. Это означает, что такой класс есть, но он содержит некоторые ошибки в инициализации (возможно, они распространяются из вашего пользовательского кода или из-за каких-то несовместимостей). К сожалению, больше ничего не могу сказать по этому поводу :( - person Nikita; 10.04.2015
comment
Спасибо. Я просто обнаружил, что использую неправильную версию scala 2.11.x вместо 2.10.4, что приводит к ошибкам. Задача решена! Большое спасибо! - person Mark; 11.04.2015