Параллельный запуск нескольких искровых запросов в многопользовательской среде для статического набора данных - PullRequest
0 голосов
/ 12 ноября 2018

Есть ли способ обрабатывать разные запросы sparkSQL (запросы на чтение с разными фильтрами и групповыми данными) в статическом наборе данных, полученном из внешнего интерфейса, параллельно, а не в режиме FIFO, чтобы у пользователей не былождать в очереди?

Один из способов - это отправлять запросы из разных потоков пула потоков, но тогда не будут ли конкурирующие потоки конкурировать за одни и те же ресурсы, то есть RDD? Источник

Есть ли более эффективный способ добиться этого с помощью spark или любой другой среды больших данных?В настоящее время я использую sparkSQL, и данные хранятся в формате паркета (200 ГБ)

1 Ответ

0 голосов
/ 12 ноября 2018

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

В таком случае лучшим выбором будут Fair Fair Scheduler Pools или Spark Dynamic Resource Allocation. Все можно найти здесь https://spark.apache.org/docs/latest/job-scheduling.html

Эта область довольно трудна для понимания, так как существует понятие:

... "Обратите внимание, что ни один из режимов в настоящее время не обеспечивает совместное использование памяти между приложениями. Если вы хотите обмениваться данными таким образом, мы рекомендуем запустить приложение на одном сервере, которое может обслуживать несколько запросов, запрашивая одни и те же СДР.".

Можно найти противоположные утверждения по переполнению стека относительно этого пункта. Apache Ignite - это то, что здесь имеется в виду, это также может послужить вам.

...