Разверните распределенную вычислительную среду за считанные минуты с помощью AWS

Что такое AWS EMR?

AWS EMR — это реализация Amazon распределенной вычислительной платформы Hadoop, предназначенная для обработки больших данных. EMR означает Elastic MapReduce, а эластичность часто используется для описания того, как AWS масштабирует ресурсы. MapReduce относится к модели программирования для распределенных вычислений из оригинальной реализации Google. С тех пор MapReduce был обобщен и широко используется.

Существует множество вариантов использования AWS EMR, например:

  1. Запуск крупномасштабных заданий по обработке данных
  2. Создавайте масштабируемые конвейеры данных
  3. Обработка потоков данных в реальном времени
  4. Ускорьте внедрение науки о данных и машинного обучения

Тем не менее, вы, вероятно, хотите изучить эту технологию без большой головной боли, если вы похожи на меня.

Что такое большие данные?

Большие данные не имеют четкого определения, но могут быть настолько большими и сложными, что их невозможно обработать на одной машине, например на персональном компьютере или виртуальной машине. Одним из наиболее важных критериев для больших данных является то, что они соответствуют трем Vразнообразию, скорости и объему.

  • Разнообразие относится к различным типам структурированных, полуструктурированных и неструктурированных данных.
  • Скорость — это скорость поступления всех данных — пакетных или потоковых. Пакетная обработка берет группу данных, обычно сгруппированных по времени, и одновременно отправляет эту группу в систему больших данных. Потоковые данные — это когда источники данных постоянно записывают данные на платформу больших данных, а потоковые данные обычно сканируются только один раз.
  • Объем – это объем данных, обработанных в таких количествах, как петабайты, эксабайты или зеттабайты.

Иногда также учитываются два других параметра V: ценность, или насколько она важна для понимания, и достоверность, или достоверность/качество данных.

Каковы преимущества ЭМИ?

Если вы когда-либо пытались установить Hadoop или части экосистемы Hadoop, такие как Apache Spark, вы обнаружите, что это нетривиальная задача. Кроме того, если вы используете его на Mac или Windows, вы, вероятно, столкнетесь с препятствиями и проблемами совместимости вместо Linux. Например, я использую M1 Macbook и не могу запустить его из-за проблем с совместимостью даже при выборе готового образа Docker.

WARNING: The requested image's platform (Linux/amd64) does not match 
the detected host platform (Linux/arm64/v8), and no specific platform 
was requested.

Кроме того, если вы устанавливаете что-то локально, вы можете столкнуться с проблемами совместимости, такими как конфликты среды выполнения Java.

Решение? АМС! С помощью нескольких щелчков мыши вы можете запустить полностью подготовленный кластер EMR для выполнения анализа.

Основные шаги

  1. Создайте учетную запись IAM без полномочий root для использования с этим процессом.
  2. Создайте кластер со всеми компонентами, необходимыми для запуска Notebooks и Spark.
  3. Создайте новую записную книжку, прикрепленную к кластеру
  4. Запустить анализ
  5. Остановите ноутбук и завершите работу кластера.
  6. Продолжить свой анализ

Шаг 1. Создание пользователя IAM без полномочий root

Важно не использовать учетную запись root для этого процесса. В большинстве случаев среда Notebook не сможет запуститься или подключиться к ядрам Python или PySpark после инициализации. Чтобы преодолеть это, создайте учетную запись с соответствующими разрешениями. Я использовал следующее как универсальное решение; Я не пытался достичь минимума.

Шаг 2: Создайте новый кластер

Затем вы хотите создать новый кластер. На изображении ниже показаны все соответствующие настройки, к которым вы можете получить доступ через параметры Расширенная конфигурация. Вы также можете добавить другие, но это элементы, в частности, две записи Jupyter и Livy, служба отдыха для Spark.

Перейдите на последнюю страницу и убедитесь, что вы выбрали файл PEM, который вы свяжете с кластером. Будет важно получить доступ к Hadoop, Hue, Spark и Пользовательским интерфейсам.

Шаг 3: Создайте новый блокнот

Далее Create Notebook в EMR. Хотя вы можете создать кластер для себя, важно выбрать тот, который вы только что создали. Используйте опцию Choose existing cluster. Этот процесс позволит вам убить кластер и, в свою очередь, воссоздать его без потери данных и возможности продолжить кодирование на вашем кластере/ноутбуке.

Шаг 4: Запустите анализ

При программировании для Apache Spark на Python вы будете использовать библиотеку pyspark. Вот небольшой пример того, как MapReduce выглядит в Python:

# Import and create an instance of SparkContext
from pyspark import SparkContext
sc = SparkContext()
# Create a small list of data in the SparkContext
B=sc.parallelize(range(4))
B.collect()
Out [1]: [0, 1, 2, 3]
# Run a simple MapReduce Routine
B.map(lambda x:x*x).reduce(lambda x,y:x+y)
Out [2]: 14

Ваш анализ может принимать различные формы в Spark. Для начала ознакомьтесь с документацией PySpark.

Шаг 5: После анализа — завершение

Вы можете легко создать очень большую сумму с помощью EMR и кластеров. Вы должны остановить блокнот и завершить работу кластера.

  1. Во-первых, stop Блокнот, но не удаляйте его.
  2. Во-вторых, terminate кластер. Их невозможно остановить, но вы можете воссоздать их позже.

Шаг 6: Продолжение анализа

Когда вы будете готовы продолжить анализ, Clone кластер и подождите, пока он запустится, вернитесь к предыдущему блокноту, а затем используйте кнопку Change Cluster вверху, чтобы связать его с вашим новым клонированным кластером.

Заключение

Spark — это мощная вычислительная среда, которая может стать важным навыком обучения. Однако его локальное развертывание может оказаться сложной задачей, на решение которой могут уйти часы вашего времени. Используя AWS EMR, вы можете развернуть Spark за считанные минуты и немедленно приступить к работе. Однако имейте в виду, что использование этих ресурсов может быть дорогостоящим, поэтому выполните описанные выше шаги, чтобы завершить работу кластера, когда закончите. Удачных распределенных вычислений!

Если вам нравится читать такие истории и вы хотите поддержать меня как писателя, подумайте о том, чтобы зарегистрироваться и стать участником Medium. Это 5 долларов в месяц, что дает вам неограниченный доступ к тысячам статей. Если вы зарегистрируетесь по моей ссылке, я получу небольшую комиссию без каких-либо дополнительных затрат для вас.

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.