Должен ли я запускать задания для запуска или запускать их из клиентской библиотеки? - PullRequest
0 голосов
/ 05 февраля 2020

Итак, я изучаю Spark, и у меня есть вопрос о том, как работают клиентские библиотеки.

Моя цель - провести какой-то анализ данных в Spark, указав, где находятся источники данных (базы данных, cvs, et c) для обработки и сохранения результатов в формате hdfs, s3 или в любой другой базе данных, например MariaDB или MongoDB.

Я думаю о том, что у меня есть служба (приложение API), которая "говорит" искре о том, что я хочу сделать. Вопрос заключается в следующем: достаточно ли при настройке контекста задать основную конфигурацию с помощью spark:remote-host:7077 или я должен отправить приложение для запуска какой-то командой spark-submit?

1 Ответ

0 голосов
/ 06 февраля 2020

Это полностью зависит от того, как настроена ваша среда. Если все пути связаны с вашей учетной записью, вы сможете выполнить одну из двух команд, чтобы эффективно открыть оболочку и выполнить тестовые команды. Причина, по которой стоит оболочка, заключается в том, что это позволит вам динамически запускать команды и проверять / изучать, как запускать / привязывать команды друг к другу и видеть, какие результаты получаются.

Scala

spark-shell

Python

pyspark

Внутри среды, если все связано с таблицами Hive, вы можете проверить таблицы, запустив

spark.sql("show tables").show(100,false)

Приведенная выше команда запустит «show tables» в каталоге Spark-Hive-Metastore и вернет все активные таблицы, которые вы видите (это не значит, что вы можете получить доступ к базовым данным). «100» означает, что я собираюсь посмотреть на 100 строк, а «ложь» означает показать полную строку, а не первые N символов.

В мифическом примере, если одна из таблиц, которую вы видите, называется Input_Table, вы можете перенести ее в среду с помощью следующих команд

val inputDF = spark.sql("select * from Input_Table")
inputDF.count

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

...