Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает Spark + Cassandra ? / 13 сообщений из 13, страница 1 из 1
10.11.2021, 19:08
    #40110846
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
Хочу понять основы биг даты на основе древней связки
Spark + Cassandra, чтобы попроще. Без Хадупа.

Cassandra это хранилище оптимизированное для записи.

Как я понял Spark Это типа Stream API, но оно создаёт джобу, отправляет на какую-то удалённую тачку(точнее на много тачек), потом получает высчитанный результат и делает ту или иную аггрегацию.

Вот у меня тогда вопрос. Получается, что кассандра должна быть кластерная ?
Стим апи вроде для чтения, а не для записи...
В чем тогда вообще суть вязки Spark + Cassandra ?


Смотрел вот такой видос:
[youtube=https://www.youtube.com/watch?v=XLSQJQjmFFw]
...
Рейтинг: 0 / 0
10.11.2021, 20:01
    #40110860
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
Spark - это фреймворк для обработки распределенных данных. Для всего: чтение, обработка, запись. Он может работать и как стриминг и как одноразовые джобы.
Cassandra - это keyValue база данных. То, что она оптимизирована для записи тут не важно. Смысл использовать кассандру без кластера небольшой, она изначально была создана как кластерная база данных.
В спарковых драйверах для кассандры есть оптимизации, если спарк и кассандра установлены на одних тачках. Оптимизации по сути сводятся к data locality.
Обычный кейс работы: пришли данные в кафку/хдфс/куда-то еще. Эти данные как-то заджойнили с данными из кассандры, как-то обработали, и далее как-то записали в кассандру/кафку/хдфс/куда-то еще
...
Рейтинг: 0 / 0
10.11.2021, 20:09
    #40110864
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
+Джойнить с кассандрой это в любом случае затратная операция. Так что возможен кейс просто готовить данные в спарке и записывать их в кассандру. Дальше уже эти данные из кассандре будет использовать кто-то другой.
...
Рейтинг: 0 / 0
10.11.2021, 20:14
    #40110866
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
SpringMan,

А в чем принципиальная разница писать данные в кассандру через спарк или через какой-то java driver ? где тут data locality ?
...
Рейтинг: 0 / 0
10.11.2021, 20:21
    #40110869
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу.
Спарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра. Будет только обращение сразу к нужному узлу и через локалхост. То есть не будет сетевого обращения от приложения к кассандре + не будет дополнительного обращения между узлами касандры
...
Рейтинг: 0 / 0
10.11.2021, 20:50
    #40110879
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
SpringMan
Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу.


Это будет делать уже кассандра ?

авторСпарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра


А можете расписать где выигрыш то будет? а то что так, что так надо искать ноду, куда записать(я спрашивал про запись). Какая разница кто это будет делать сама кассандра или спарк ?
...
Рейтинг: 0 / 0
10.11.2021, 21:14
    #40110893
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
questioner
SpringMan
Кассандра состоит из нескольких узов. Чтобы получить данные по какому-то ключу, можно обратится на любой узел касандры. Если данные на этом узле, то данные вернутся с него. Если данные на другом узле, то произойдет еще одно сетевое обращение к нужному узлу.


Это будет делать уже кассандра ?

Да

questioner

авторСпарковые экзекьютеры могут запустится на тех же узлах, на которых работает касандра

А можете расписать где выигрыш то будет? а то что так, что так надо искать ноду, куда записать(я спрашивал про запись). Какая разница кто это будет делать сама кассандра или спарк ?
Как минимум разница:
- в одном случае кассандра пересылает ответные данные по сети, в другом отдает на локалхост
- пересылка данных по сети в спарке идет батчами, а кассандра это дело хоть как обрабатывает построчно (да там есть батчи, но они не про перформанс)
...
Рейтинг: 0 / 0
10.11.2021, 22:03
    #40110902
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
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.

Вот такая вязка животных мне кажется лучше.
...
Рейтинг: 0 / 0
10.11.2021, 22:25
    #40110904
kolchanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
>Тоесть cassandra - источник событий
Так себе источник.
Скорее получатель.

>Так что возможен кейс просто готовить данные в спарке и записывать их в кассандру. Дальше уже эти данные из кассандре будет использовать кто-то другой.

Полностью согласен
...
Рейтинг: 0 / 0
11.11.2021, 11:38
    #40110976
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
SpringMan


Как минимум разница:
- в одном случае кассандра пересылает ответные данные по сети, в другом отдает на локалхост
- пересылка данных по сети в спарке идет батчами, а кассандра это дело хоть как обрабатывает построчно (да там есть батчи, но они не про перформанс)


Судя по [youtube=https://youtu.be/XLSQJQjmFFw?t=443]

В любом случае в спарке есть координирующая нода и весь траффик идёт через неё.

Про батчи что-то не понял. Почему одни про перформанс, а другие не про перформанс.
...
Рейтинг: 0 / 0
11.11.2021, 12:25
    #40110985
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?



А можете ещё объяснить Что тут происходит с точки зрения кластера.

Из проперти файла создали RDD строк. В методе сделали некии манипуляции и вернули наружу.

Вот где внутри этого метода будет обращение к кластеру ? зачем оно ?
...
Рейтинг: 0 / 0
11.11.2021, 14:27
    #40111018
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
В технологиях bigdata не код читает данные а всё наоборот. Лямбда передается всем узлам исполнителям.
Запускается по принципу похожему на fork-join и результат возвращается тебе.

Ты почти все правильно описал только вот это "Из проперти файла создали RDD строк" тоже является
отложенной асинхронной операцией и кроме того она в идеале должна быть splittable чтобы работать
эффективно. Тоесть если у тебя должен быть сет файлов. Или просто один большой файл но обладающий
такой опцией by design. Вот здесь и будет обращение к кластеру. Вернее сказать к хранилищу
сразу из нескольких workers.
...
Рейтинг: 0 / 0
11.11.2021, 22:48
    #40111165
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Spark + Cassandra ?
questioner

В любом случае в спарке есть координирующая нода и весь траффик идёт через неё.

Это не так, посмотри еще раз. Можно результат вытянуть на координирующую ноду, но это не обязательное действие. И тем более трафик через нее не идет

questioner

А можете ещё объяснить Что тут происходит с точки зрения кластера.
Из проперти файла создали RDD строк. В методе сделали некии манипуляции и вернули наружу.
Вот где внутри этого метода будет обращение к кластеру ? зачем оно ?

Довольно странно, пытаться понять в чем особенность связки spark+cassandra, не понимаю как работает спарк.
javaRDD - это есть абстракция, все действия над которой происходят на кластере. Можешь прочитать хотя бы это , ну и чел на видео вроде объясняет суть
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает Spark + Cassandra ? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]