Выполнение кода Spark-Scala без использования Eclipse или IntelliJ и Maven или SBT - PullRequest
0 голосов
/ 30 ноября 2018

Возможно, это глупые вопросы, но я застрял и не смог начать свои проекты Spark.Я никогда не делал этого раньше, так что терпите меня.

У меня есть Linux Machine (RHEL), где я установил Spark 2.2 и Scala 2.11.8.Установите пути для Spark и Scala.Я могу запустить команду spark-shell и Scala REPL в терминале.Я не использую Hadoop и не запускаю Spark в локальном режиме.

Теперь я должен начать свой проект, поэтому после написания кода я могу его построить.Я не могу использовать Eclipse или любую IDE в этом отношении.Мне нужно сделать это без этого.Для Maven и SBT также могут возникнуть некоторые проблемы.Так есть ли способ, где я могу загрузить мои jar-файлы в автономном режиме, а затем где-нибудь их собрать, чтобы я мог собрать свой код.

Кроме того, у меня есть папка jars в папке установки Spark, для чего это нужно?

Для чего используется spark-submit?Используется ли он для сборки или просто для запуска встроенного кода?

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

1 Ответ

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

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

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

"У меня есть машина Linux (RHEL), где я установил Spark 2.2 и Scala 2.11.8.вверх по путям для Spark и Scala. Я могу запустить команду spark-shell и Scala REPL ".

Обратите внимание, что Spark включает в себя собственный Scala, поэтому вам не нужно устанавливать.Тем не менее, наличие Scala RELP может помочь попробовать небольшие фрагменты кода, которые не нуждаются в Spark.

"Теперь я должен начать свой проект, поэтому после написания кода я могу его построить.я не могу использовать Eclipse или любую IDE в этом отношении. Мне нужно сделать это без него. Для Maven и для SBT также могут быть некоторые проблемы ".

Я могу понять, что у меня нет IDEна сервере, но инструмент для сборки?
В любом случае, если вы не можете ничего установить там по каким-либо причинам (например, для обеспечения безопасности или поддержания чистоты среды) Я думаю, что лучше всего было бызапрограммируйте приложение Spark на свой персональный компьютер, скомпилируйте его там и загрузите сгенерированный JAR на сервер только для запуска.
Обратите внимание, что вы можете скомпилировать его вручную, используя scalac ... но это будет кошмар.

"Кроме того, у меня есть папка jars в папке установки Spark, для чего это нужно?"

При запуске приложения Spark (например, spark-shell) вы увидите сообщениенам нравится следующее.
WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
Это означает, что если вы не укажете, какие jar-файлы загружать, он будет использовать только те, которые находятся внутри этой папки - он включает в себя все библиотеки, необходимые Spark для запуска (как и сама стандартная библиотека Scala) .
Для ваших собственных приложений вам могут понадобиться зависимости, такие как, например, Spark-Mongo-Connector.Для включения этих библиотек при запуске приложения у вас есть несколько вариантов:

  1. Создать Fat JAR со всеми его зависимостями.Однако имейте в виду, что вы должны исключить Spark и стандартную библиотеку Scala из сгенерированного JAR, поскольку это может вызвать проблемы двоичной несовместимости.

  2. Загрузите все JAR-файлы, которые вам нужны, в каталог всвой кластер, и передайте их в spark-submit, используя опцию --jars.

  3. Как и во втором, но вместо того, чтобы передавать каждый jar (который может быть много) , создайте один толстый JAR , но только для своих зависимостей.

  4. Добавьте файлы JAR в указанную выше папку, чтобы они были доступны для каждого приложения spark.

"Для чего используется spark-submit? Используется ли он для сборки или просто запуска встроенного кода?"

Используетсячтобы запустить Spark App в кластере, для Java / Scala вам нужно предоставить JAR, для Python / R - файл (ы) Script.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...