Могут ли исполнители Spark появляться в уже запущенном Java-процессе (Ignite JVM) - PullRequest
0 голосов
/ 31 октября 2018

Я работаю над проектом, в котором мне нужно поделиться состоянием выполнения в другом приложении spark.

Я решил использовать apache-ignite в качестве общего хранилища для разных приложений spark.

Я думал о переходе со встроенным режимом зажигания со статическим распределением в искре, где узлы зажигания начнутся в процессе выполнения Spark. Таким образом, задачи будут выполняться в том же процессе, где присутствуют данные. Но этот режим устарел .

Я мог бы пойти с автономным развертыванием Ignite, но было бы взаимодействие между процессами, чтобы получить и сохранить состояние, которого я хочу избежать.

Есть ли какой-либо способ сказать Spark создать своих исполнителей в уже существующем процессе (в данном случае Ignite nodeprocesses)?

Может ли ExternalClusterManager быть реализован для достижения этой цели?

Планирует ли Ignite ввести такой режим в будущем?

1 Ответ

0 голосов
/ 01 ноября 2018

Ну, да, ваше общее направление разумно. Устаревшее встроенное развертывание Ignite, так сказать, внедрено «задом наперед» - когда вы встраиваете Ignite в Spark, оно работает плохо, но если мы встраиваем Spark в Ignite, оно будет работать лучше.

Да, я предполагаю, что это будет возможно реализовать. Вероятно, это может быть реализовано даже за пределами Ignite.

Не думаю, что в журнале Ignite есть какие-либо открытые проблемы, но вы можете поделиться своими предложениями в Списке рассылки Ignite dev .

А теперь основная часть. Все, что вы собираетесь достичь с помощью вашего предложения, - это заменить межпроцессное взаимодействие внутрипроцессным. Обычно общение на одном хосте не так уж и дорого. Вы могли бы увидеть некоторое увеличение производительности от этого, но я бы начал реализовывать это только в том случае, если бы имелись убедительные доказательства того, что это решит реальную проблему.

...