2016-07-03 5 views
2

Я довольно новый, чтобы искра, и мне интересно, что лучше всего использовать при использовании spark-streaming с Cassandra.Использование фьючерсов в Spark-Streaming & Cassandra (Scala)

Обычно при выполнении IO рекомендуется выполнить его внутри Future (в Scala). Однако spark-cassandra-connector работает синхронно.

Например: saveToCassandra (com.datastax.spark.connector.RDDFunctions)

Есть хорошая причина, почему эти функции не ASync? следует ли обернуть их Future?

+0

Не забывайте, что Spark уже является распределенной системой, что означает, что ваш код работает параллельно на разных узлах и внутри этих узлов, возможно, у нескольких исполнителей. Я не уверен, что упаковка 'saveToCassandra' в« Будущем »принесет вам любую выгоду, если не ухудшит производительность. –

+0

Вот почему я с трудом могу принять решение по этому вопросу. Spark также может делать оптимизацию. Я не знаю о реализации в различных функциях (например, ленивый/копирование и т. Д.). – EranM

+1

Если вы действительно заинтересованы, я бы сказал, профиль и посмотреть, что результаты. –

ответ

2

Хотя есть законные случаи, когда вы можете воспользоваться асинхронным исполнением кода драйвера, это не общее правило. Вы должны помнить, что сам водитель не место, где выполняется реальная работа и выполнение Спарка является предметом различных типов ограничений, в частности:

  • планирование ограничений, связанные с распределением ресурсов и DAG топологии
  • пакетной порядок в потоковых приложениях

Кроме того, думать о действиях, таких как saveToCassandra, как операция ввода-вывода является значительным упрощением. Действия Spark - это только точки входа для Spark-заданий, где обычно активность IO является лишь верхушкой айсберга.

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

+0

o.k. спасибо за Ваш ответ. Я начну без фьючерсов и посмотрю. – EranM

Смежные вопросы