Ошибка контекста в кластере искрового сервера заданий

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

Для развертывания сервера мы следуем документации по адресу 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. Наверное, самый простой способ обойти это.

Увидеть

  1. https://github.com/spark-jobserver/spark-jobserver/blob/master/bin/server_start.sh
  2. http://spark-packages.org/package/datastax/spark-cassandra-connector

Вы можете просто добавить --packages к вашему серверу.

./server_start.sh --packages datastax:spark-cassandra-connector:VersionYouWant

Другие вопросы по тегам