Развертывание Play Framework (требуется SparkContext) в кластере

Мы развертываем в кластере Play! Приложение Framework (версия 2.3), которое запускает задания, требующие SparkContext (например, поиск в Hbase или WordCount). Наш кластер — это кластер Yarn. Чтобы запустить наше приложение, мы выполняем командную строку:

activator run 

(после компиляции и упаковки)

Мы экспериментируем с некоторыми проблемами с конфигурацией SparkContext, мы используем эту конфигурацию:

new SparkConf(false)
     .setMaster("yarn-cluster")
     .setAppName("MyApp")
val sc = new SparkContext(sparkConf)

Когда мы вызываем маршрут, который вызывает задание с использованием SparkContext, мы получаем эту ошибку:

[RuntimeException: java.lang.ExceptionInInitializerError]

или этот (при перезагрузке):

[RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class mypackage.MyClass$]

Чтобы протестировать наш код, мы изменили параметр setMaster на

.setMaster("local[4]")

И это сработало хорошо. Но, конечно, наш код не распространяется, и мы не используем возможности Spark для распространения нашего кода (например, RDD).

Является ли запуск нашего приложения с помощью команды spark submit решением? Если да, то как это можно сделать?

Мы бы предпочли по-прежнему использовать команду активатора.


person Tristan BARDEY    schedule 30.07.2015    source источник
comment
Пожалуйста, обратитесь к следующему потоку на stackoverflow. stackoverflow.com/questions/33728640 /   -  person blitZ_91011    schedule 27.09.2016