|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
Хочу понять основы биг даты на основе древней связки Spark + Cassandra, чтобы попроще. Без Хадупа. Cassandra это хранилище оптимизированное для записи. Как я понял Spark Это типа Stream API, но оно создаёт джобу, отправляет на какую-то удалённую тачку(точнее на много тачек), потом получает высчитанный результат и делает ту или иную аггрегацию. Вот у меня тогда вопрос. Получается, что кассандра должна быть кластерная ? Стим апи вроде для чтения, а не для записи... В чем тогда вообще суть вязки Spark + Cassandra ? Смотрел вот такой видос: [youtube=https://www.youtube.com/watch?v=XLSQJQjmFFw] ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 19:08 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
Spark - это фреймворк для обработки распределенных данных. Для всего: чтение, обработка, запись. Он может работать и как стриминг и как одноразовые джобы. Cassandra - это keyValue база данных. То, что она оптимизирована для записи тут не важно. Смысл использовать кассандру без кластера небольшой, она изначально была создана как кластерная база данных. В спарковых драйверах для кассандры есть оптимизации, если спарк и кассандра установлены на одних тачках. Оптимизации по сути сводятся к data locality. Обычный кейс работы: пришли данные в кафку/хдфс/куда-то еще. Эти данные как-то заджойнили с данными из кассандры, как-то обработали, и далее как-то записали в кассандру/кафку/хдфс/куда-то еще ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 20:01 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
+Джойнить с кассандрой это в любом случае затратная операция. Так что возможен кейс просто готовить данные в спарке и записывать их в кассандру. Дальше уже эти данные из кассандре будет использовать кто-то другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 20:09 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
SpringMan, А в чем принципиальная разница писать данные в кассандру через спарк или через какой-то java driver ? где тут data locality ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 20:14 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу. Спарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра. Будет только обращение сразу к нужному узлу и через локалхост. То есть не будет сетевого обращения от приложения к кассандре + не будет дополнительного обращения между узлами касандры ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 20:21 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
SpringMan Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу. Это будет делать уже кассандра ? авторСпарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра А можете расписать где выигрыш то будет? а то что так, что так надо искать ноду, куда записать(я спрашивал про запись). Какая разница кто это будет делать сама кассандра или спарк ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 20:50 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
questioner SpringMan Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу. Это будет делать уже кассандра ? Да questioner авторСпарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра А можете расписать где выигрыш то будет? а то что так, что так надо искать ноду, куда записать(я спрашивал про запись). Какая разница кто это будет делать сама кассандра или спарк ? Как минимум разница: - в одном случае кассандра пересылает ответные данные по сети, в другом отдает на локалхост - пересылка данных по сети в спарке идет батчами, а кассандра это дело хоть как обрабатывает построчно (да там есть батчи, но они не про перформанс) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 21:14 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
questioner Хочу понять основы биг даты на основе древней связки Spark + Cassandra, чтобы попроще. Без Хадупа. Spark и Cassandra - это идеологически очень разные штуки. Если гуглить по документации спарка то можно найти External Datasets https://spark.apache.org/docs/3.2.0/rdd-programming-guide.html#external-datasets где cassandra просто упоминается как источник данных. Так себе источник я-бы сказал. Слишком дорогой чтобы быть биг-датой. И наоборот в доке по кассандре есть прямая линка на https://github.com/datastax/spark-cassandra-connector Но если скрещивть ужа с ежом то мне кажется что интереснее смотреть в другую сторону. Тоесть cassandra - источник событий. И эти события ловятся кафкой и потом передаются в spark streaming. Вот такая вязка животных мне кажется лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 22:03 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
>Тоесть cassandra - источник событий Так себе источник. Скорее получатель. >Так что возможен кейс просто готовить данные в спарке и записывать их в кассандру. Дальше уже эти данные из кассандре будет использовать кто-то другой. Полностью согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 22:25 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
SpringMan Как минимум разница: - в одном случае кассандра пересылает ответные данные по сети, в другом отдает на локалхост - пересылка данных по сети в спарке идет батчами, а кассандра это дело хоть как обрабатывает построчно (да там есть батчи, но они не про перформанс) Судя по [youtube=https://youtu.be/XLSQJQjmFFw?t=443] В любом случае в спарке есть координирующая нода и весь траффик идёт через неё. Про батчи что-то не понял. Почему одни про перформанс, а другие не про перформанс. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 11:38 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
А можете ещё объяснить Что тут происходит с точки зрения кластера. Из проперти файла создали RDD строк. В методе сделали некии манипуляции и вернули наружу. Вот где внутри этого метода будет обращение к кластеру ? зачем оно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 12:25 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
В технологиях bigdata не код читает данные а всё наоборот. Лямбда передается всем узлам исполнителям. Запускается по принципу похожему на fork-join и результат возвращается тебе. Ты почти все правильно описал только вот это "Из проперти файла создали RDD строк" тоже является отложенной асинхронной операцией и кроме того она в идеале должна быть splittable чтобы работать эффективно. Тоесть если у тебя должен быть сет файлов. Или просто один большой файл но обладающий такой опцией by design. Вот здесь и будет обращение к кластеру. Вернее сказать к хранилищу сразу из нескольких workers. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 14:27 |
|
Как работает Spark + Cassandra ?
|
|||
---|---|---|---|
#18+
questioner В любом случае в спарке есть координирующая нода и весь траффик идёт через неё. Это не так, посмотри еще раз. Можно результат вытянуть на координирующую ноду, но это не обязательное действие. И тем более трафик через нее не идет questioner Довольно странно, пытаться понять в чем особенность связки spark+cassandra, не понимаю как работает спарк. javaRDD - это есть абстракция, все действия над которой происходят на кластере. Можешь прочитать хотя бы это , ну и чел на видео вроде объясняет суть ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 22:48 |
|
|
start [/forum/topic.php?fid=59&fpage=3&tid=2120311]: |
0ms |
get settings: |
19ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
338ms |
get tp. blocked users: |
2ms |
others: | 357ms |
total: | 797ms |
0 / 0 |