Я пытаюсь развернуть автономный кластер Spark, используя специально созданную JVM. Запуск главного и рабочего процессов Spark — это нормально, но как только драйвер запускается и отправляет работу главному, рабочий процесс падает, потому что он пытается разветвить Executor, просматривая JAVA_HOME/bin/java. Есть ли способ настроить запуск исполнителя, чтобы он использовал пользовательскую JVM?
Автономный кластер Spark на пользовательской JVM
Ответы (1)
Я понял, что самый простой способ сделать это — наследовать org.apache.spark.deploy.worker.Worker. Я сделал это на Java, а затем создал PartialFunction, которая обрабатывала только сообщение LaunchExecutor; когда я получил это сообщение, я создал еще один пользовательский экземпляр класса, унаследованный от ExecutorRunner.
Внутри моего CustomExecutorRunner я создал свою собственную специальную команду Java и выполнил ее вместо того, чтобы позволить ExecutorRunner сделать это.
Это было довольно грязно и требовало некоторого размышления, чтобы получить доступ к закрытым полям, которые мне были нужны, чтобы все работало гладко, но это сработало.
person
FreeMemory
schedule
26.05.2016