Обратите внимание, что на эти вопросы не следует отвечать, потому что это слишком просто и не по теме - так как это не связано с конкретной проблемой программирования.
Однако я постараюсь ответить на него только потому, что я там был.
"У меня есть машина 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.Для включения этих библиотек при запуске приложения у вас есть несколько вариантов:
Создать Fat JAR со всеми его зависимостями.Однако имейте в виду, что вы должны исключить Spark и стандартную библиотеку Scala из сгенерированного JAR, поскольку это может вызвать проблемы двоичной несовместимости.
Загрузите все JAR-файлы, которые вам нужны, в каталог всвой кластер, и передайте их в spark-submit
, используя опцию --jars
.
Как и во втором, но вместо того, чтобы передавать каждый jar (который может быть много) , создайте один толстый JAR , но только для своих зависимостей.
Добавьте файлы JAR в указанную выше папку, чтобы они были доступны для каждого приложения spark.
"Для чего используется spark-submit? Используется ли он для сборки или просто запуска встроенного кода?"
Используетсячтобы запустить Spark App в кластере, для Java / Scala вам нужно предоставить JAR, для Python / R - файл (ы) Script.