Ошибка контекста в кластере искрового сервера заданий
Мы работаем над запуском сервера искровых работ на кластере искр.
Для развертывания сервера мы следуем документации по адресу github.com/spark-jobserver/spark-jobserver#deployment. Мы развертываем с помощью запуска ./server_deploy.sh local
,
Я загрузил наш local.conf
а также local.sh
вклеить
local.conf - http://pastebin.com/DWJEuX11
local.sh - http://pastebin.com/S2hjXb8J
Затем мы запускаем мастер кластера и работника, выполняя следующие команды из корневой папки spark
./sbin/master-start.sh
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://IP:PORT
Проверка localhost:8080, кажется, работает нормально.
Затем мы запускаем сервер, запустив ./server_start.sh --master spark://IP:PORT --deploy-mode cluster
Снова проверяя localhost:8080, мы видим, что сервер запущен и работает на одном ядре на рабочем компьютере. Проверяя localhost:8090, мы видим, что сервер spark-jobserver также запущен и работает.
Затем мы создаем пользовательский контекст, который включает CassandraSQLContext (github.com/datastax/spark-cassandra-connector/blob/master/spark-cassandra-connector/src/main/scala/org/apache/spark/sql/cassandra/CassandraSQLContext. скала) бегом
curl -d "" 'localhost:8090/contexts/cassandra-context?context-factory=spark.jobserver.context.CassandraContextFactory&num-cpu-cores=4&memory-per-node=512m'
Затем мы получаем следующую ошибку
{
"status": "CONTEXT INIT ERROR",
"result": {
"errorClass": "java.lang.NoClassDefFoundError",
"cause": "org.apache.spark.sql.cassandra.CassandraSQLContext",
"stack": ["java.net.URLClassLoader.findClass(URLClassLoader.java:381)"...
}
}
Мы попытались исправить эту ошибку, добавив в файл jar зависимостей local.conf
dependent-jar-uris = ["file:///path/to/jar.jar"]
Это дало ту же ошибку.
Мы также попытались включить всю папку src spark-cassandra-connector в наши дополнительные задания сервера, что дало ошибку File line length exceeds 110 characters
почти на каждом файле при запуске ./server_deploy.sh local
,
Мы будем признательны за любую возможную помощь.
1 ответ
Я бы просто добавил строку --packages в spark-submit, используемый для запуска JobServer. Наверное, самый простой способ обойти это.
Увидеть
- https://github.com/spark-jobserver/spark-jobserver/blob/master/bin/server_start.sh
- http://spark-packages.org/package/datastax/spark-cassandra-connector
Вы можете просто добавить --packages к вашему серверу.
./server_start.sh --packages datastax:spark-cassandra-connector:VersionYouWant