Size: a a a

2019 August 19

JD

John Doe in Moscow Spark
Народ, сейчас думаем над тем, какое решение для онлайн-обработки данных использовать. Колеблемся между NiFi, Flink и стримингом. Кто чего использовал? Какие плюсы/минусы? Саксес/фейл стори?
источник

JD

John Doe in Moscow Spark
Есть куча всяких разных источников, нужно их к себе тянуть и складывать
источник

K

KrivdaTheTriewe in Moscow Spark
Юзайте спарк стриминг
источник

K

KrivdaTheTriewe in Moscow Spark
Какое летенси нужно
источник

S

Stanislav in Moscow Spark
John Doe
Есть куча всяких разных источников, нужно их к себе тянуть и складывать
Без подробностей - фигня выйдет
источник
2019 August 20

ЛР

Лев Рагулин... in Moscow Spark
John Doe
Народ, сейчас думаем над тем, какое решение для онлайн-обработки данных использовать. Колеблемся между NiFi, Flink и стримингом. Кто чего использовал? Какие плюсы/минусы? Саксес/фейл стори?
Согласен с предыдущим оратором - нужны подробности постановки задачи. По сути все три - разные инструменты с разными возможностями. Nifi вообще в принципе инструмент не обработки а доставки данных. Он может в цепочке до Spark стоять.
источник

NI

Nikolay Ivanov in Moscow Spark
Постановка задачи - есть источники данных - в основном kafka, mq, нагрузка приблизительно 1000 rps, нужен инструмент, который мог бы обрабатывать входящие данные и складывать что-то в postgres, что-то в кассандру, что-то отправлять дальше в rabbit. Очень хочется чтобы обработка данных была real-time.
источник

S

Stanislav in Moscow Spark
Nikolay Ivanov
Постановка задачи - есть источники данных - в основном kafka, mq, нагрузка приблизительно 1000 rps, нужен инструмент, который мог бы обрабатывать входящие данные и складывать что-то в postgres, что-то в кассандру, что-то отправлять дальше в rabbit. Очень хочется чтобы обработка данных была real-time.
насколько тяжелая обработка?
источник

S

Stanislav in Moscow Spark
1000 рпс - это мало
источник

S

Stanislav in Moscow Spark
если быстро прототипировать и нет требования к латенси - найфай
если быстро писать, просто поддерживать - чистый жава апп
если заморочаться и красиво/бохато - можно и спарк с флинком
источник

K

KrivdaTheTriewe in Moscow Spark
Stanislav
если быстро прототипировать и нет требования к латенси - найфай
если быстро писать, просто поддерживать - чистый жава апп
если заморочаться и красиво/бохато - можно и спарк с флинком
Я бы для второго пункта предложил бы скалу
источник

NI

Nikolay Ivanov in Moscow Spark
Stanislav
если быстро прототипировать и нет требования к латенси - найфай
если быстро писать, просто поддерживать - чистый жава апп
если заморочаться и красиво/бохато - можно и спарк с флинком
А что с латенси в найфай?
источник

S

Stanislav in Moscow Spark
Nikolay Ivanov
А что с латенси в найфай?
непредсказуемо
источник

S

Stanislav in Moscow Spark
двухдневный график
синий - найфай, оранжевый - жава апп
ораневый полностью повторяет график входящего трафика
источник

S

Stanislav in Moscow Spark
топик один и тот же
источник

DG

Denis Gabaydulin in Moscow Spark
Рекомендую использовать то, где у вас есть экспертиза. В каждом стриминговом движке закопана вагон и маленькая тележка нюансов.
Минус спарк стриминга в том что там микробатчинг (true streaming есть но экспериментально). А во flink есть true streaming. Но обработка каждого отдельного события при большом потоке это очень накладко и имеет право на жизнь, только если у вас кейс с фильтрацией относительно редкого события, но с очень быстрой реакцией.
источник

DG

Denis Gabaydulin in Moscow Spark
В остальных случаях накладные расходы на сам пайплайн и оверед фрейворка будут просто настолько высоки, что среднее latency может быть меньше в режиме микробатчинга, чем при обработке ед событий.
источник

NI

Nikolay Ivanov in Moscow Spark
Спасибо всем за советы! Будем решать. Есть экспертиза в spark streaming, и совсем немного в NiFi, flink не использовали раньше. Соображения по поводу расходов на микробатчинг vs реалтайм выглядят резонно.
источник
2019 August 21

ПФ

Паша Финкельштейн... in Moscow Spark
Привет, народ! А есть идеи о том, как можно в спарк-скале дебажить NPE?
Сейчас самое информативное что я вижу на уровне INFO это
java.lang.NullPointerException
 at org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter.write(UnsafeRowWriter.java:194)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.serializefromobject_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.mapelements_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.deserializetoobject_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.processNext(Unknown Source)
 at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
 at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.execute(FileFormatWriter.scala:380)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:269)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:267)
 at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1415)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:272)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:197)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:196)
 at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
 at org.apache.spark.scheduler.Task.run(Task.scala:109)
 at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748)
источник

GP

Grigory Pomadchin in Moscow Spark
Паша Финкельштейн
Привет, народ! А есть идеи о том, как можно в спарк-скале дебажить NPE?
Сейчас самое информативное что я вижу на уровне INFO это
java.lang.NullPointerException
 at org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter.write(UnsafeRowWriter.java:194)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.serializefromobject_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.mapelements_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.deserializetoobject_doConsume_0$(Unknown Source)
 at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage23.processNext(Unknown Source)
 at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
 at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.execute(FileFormatWriter.scala:380)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:269)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:267)
 at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1415)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:272)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:197)
 at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:196)
 at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
 at org.apache.spark.scheduler.Task.run(Task.scala:109)
 at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748)
ты можешь в дата инжах написать там больше людей
источник