Хобрук: Ваш путь к мастерству в программировании

Установка зависимостей/библиотек для EMR для spark-shell

Я пытаюсь добавить дополнительные библиотеки в scala, используемые через spark-shell, через inatance Elsatic MapReduce. Но я не уверен, как это сделать, есть ли инструмент сборки, который используется при запуске spark-shell?

Все, что мне нужно сделать, это установить библиотеку scala и запустить ее через версию scala spark-shell, я не знаю, как это сделать, поскольку я не знаю, как экземпляр EMR устанавливает scala и spark.


  • Хорошо, я добавил еще немного. Спасибо 09.04.2016

Ответы:


1

Я думаю, что этот ответ будет развиваться с информацией, которую вы предоставляете. На данный момент, учитывая, что у вас развернут кластер AWS EMR, на котором вы хотите использовать spark-shell. Вариантов много:

Вариант 1. Вы можете скопировать свои библиотеки в кластер с помощью команды scp и добавить их в искровую оболочку с помощью параметров --jars. например:

с вашей локальной машины:

scp -i awskey.pem /path/to/jar/lib.jar hadoop@emr-cluster-address:/path/to/destination

в вашем кластере EMR:

spark-shell --master yarn --jars lib.jar

Spark использует следующую схему URL-адресов, позволяющую использовать различные стратегии распространения jar-файлов:

  • file: — Абсолютные пути и URI-адреса file:/ обслуживаются файловым HTTP-сервером драйвера, и каждый исполнитель извлекает файл с HTTP-сервера драйвера.
  • hdfs:, http:, https:, ftp: - эти файлы и JAR-файлы вытягиваются из URI, как и ожидалось.
  • local: - ожидается, что URI, начинающийся с local:/, будет существовать как локальный файл на каждом рабочем узле. Это означает, что сетевой ввод-вывод не будет выполняться, и он хорошо работает с большими файлами/JAR-файлами, которые передаются каждому рабочему процессу или совместно используются через NFS, GlusterFS и т. д.

Вариант 2. Вы можете получить копию своих библиотек из S3 и добавить их с помощью параметра --jars.

Вариант 3. Вы можете использовать параметры --packages для загрузки из удаленного репозитория. Вы можете включить любые другие зависимости, указав список координат maven, разделенных запятыми. Все транзитивные зависимости будут обработаны при использовании этой команды. Дополнительные репозитории (или распознаватели в SBT) можно добавлять через запятую с помощью флага --repositories. Эти команды можно использовать с pyspark, spark-shell и spark-submit для включения пакетов Spark.

Для Python можно использовать эквивалентную опцию --py-files для распространения библиотек .egg, .zip и .py среди исполнителей.

09.04.2016
  • Большое спасибо. Это работает, но я не могу добиться того, чего хочу, поэтому мне просто нужно открыть новый вопрос, я думаю. 09.04.2016
  • Еще одна идея скопировать ваши файлы на S3: aws s3 cp my_full_local_path my_full_s3_path. aws.amazon.com/fr/cli 04.06.2018
  • это вариант 2. Спасибо @belka 04.06.2018
  • @eliasah Я имел в виду использование CLI Amazon, насколько я понимаю, это не указано в вашем варианте 2. Ваш вариант 2 касается использования графического интерфейса Amazon S3. 04.06.2018
  • Это подразумевается. AWS имеет множество API для управления/общения со своими сервисами. Нет смысла описывать их все. ;) 04.06.2018
  • @eliasah Как мы говорим по-французски, вкусы и цвета;) В любом случае, спасибо за ваш ответ, я думаю, он спасет мой день. 04.06.2018
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..