Почему Spark 1.6 не использует Akka?

Когда я прочитал исходный код искры-1.6 класса Master, метод receiveAndReply, похоже, не использует Akka. [Ср здесь.]

Почему он не использует Akka? И что они заменили Аккой?

Ответы

Ответ 1

Мотивация, заключающаяся в том, что Spark независима от Akka, хорошо описана в SPARK-5293, что является общей задачей для связанных с Akka проблем.

К цитатой исходное описание:

Spark зависит от Akka, [поэтому] пользователи не могут полагаться на разные версии, и в прошлом мы получили много запросов с просьбой о помощи по этой конкретной проблеме. Например, Spark Streaming может использоваться как получатель сообщений Akka, но наша зависимость от Akka требует, чтобы актеры Akka вверх по течению также использовали идентичную версию Akka.

Поскольку наше использование Akka ограничено (в основном для RPC и однопоточного цикла событий), мы можем заменить его альтернативными реализациями RPC и общим циклом событий в Spark.

Как вы можете видеть, основная причина проста - предоставить пользователям больше гибкости при создании своих собственных приложений.

Также удаление сложной зависимости, такой как Akka, которая в любом случае не использовалась Spark, что означает более низкую стоимость обслуживания.