Рекомендации по распределенному хранению данных в среде с различными операционными системами для приложений на Python (Hadoop vs Databricks vs другие)

Вопрос или проблема

Я работаю над проектом больших данных и использую несколько старых серверов на базе различных операционных систем (Ubuntu, CentOS, Windows 2012, Windows 10). Одна из основных причин, по которой я бы хотел использовать распределенное хранилище, заключается в том, что я собираю большие объемы данных очень быстро, и попытка записывать все данные на один диск перегружает его, что приводит к потере данных. Алгоритм сбора данных написан полностью на Python. В конечном итоге я хочу использовать данные для обучения моделей машинного обучения в TensorFlow.

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

Похоже, что Hadoop был оправданным решением для больших данных, но его трудно настроить, особенно на Windows, и он, по-видимому, не работает нативно в Python. Databricks выглядит интересно, но мне не ясно, так ли хорошо оно работает как Hadoop в распределенном хранении данных (или это даже возможность Databricks).

Я был бы очень признателен за любые рекомендации по инструментам и фреймворкам для изучения (я открыт как для платных, так и для бесплатных инструментов) и любые поправки касательно моего понимания Hadoop и Databricks выше.

PySpark с Amazon EMR идут рука об руку и могут подойти для того, чтобы меньше беспокоиться о настройке и обеспечить надежность хранения, развертывая Amazon EC2 для хранения ваших данных.

Вот статья Amazon по настройке. Имейте в виду, что вам придется заплатить некоторые сборы, если вы хотите попробовать Amazon EMR сразу, но это должно быть относительно недорого, чтобы попробовать перед реальной реализацией.

Если вы используете Jupyter Notebook, ознакомьтесь с этой статьей.

.

Ответ или решение

Рассмотрим все варианты поэтапно, основываясь на ваших текущих потребностях и подходящих решениях для распределённого хранения данных в смешанной операционной среде с использованием Python.

Теория: Выбор распределенной системы хранения данных

Основными факторами, которые влияют на выбор системы распределенного хранения данных, являются:

  1. Гибкость и адаптивность: Важно выбрать платформу, которая может быть легко адаптирована к различным операционным системам и аппаратным условиям, учитывая, что у вас имеется смесь Ubuntu, CentOS, Windows 2012 и Windows 10.

  2. Поддержка работы с Python: Поскольку ваш алгоритм сбора данных полностью реализован на Python, важно выбрать систему, которая имеет нативную поддержку или интеграцию с Python.

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

  4. Совместимость с TensorFlow: Рассмотрите возможность легкой интеграции с TensorFlow для машинного обучения.

Пример: Различные платформы для распределённого хранения данных

  • Hadoop и HDFS: Это традиционное решение для больших данных, широко используемое в течение многих лет. Однако оно требует значительных навыков для настройки, особенно в Windows среде, и нативно не поддерживает Python, что может вызвать дополнительные сложности.

  • Databricks: Databricks предлагает облачную платформу, которая фокусируется на обработке больших данных и машинном обучении, и это делает PySpark доступным для использования, что может быть преимуществом с точки зрения интеграции с Python.

  • Amazon EMR и PySpark: Amazon EMR позволяет использовать кластерные вычисления для обработки данных, в том числе через PySpark. Это снижает необходимость сложной ручной установки и настройки, и обеспечивает надежное хранение на Amazon S3. Однако это облачное решение и может потребовать дополнительной оплаты.

Применение: Рекомендации для вашего проекта

Учитывая ваши потребности и текущее окружение, рекомендуется рассмотреть Amazon EMR в связке с PySpark. Это позволит вам:

  1. Обойти сложности настройки Hadoop на Windows: Облачная инфраструктура AWS упрощает процесс настройки кластерной среды и предоставляет удобные средства для масштабирования.

  2. Воспользоваться мощностями Spark: С помощью PySpark вы сможете использовать все преимущества Apache Spark для быстрой и эффективной обработки больших данных с поддержкой Python.

  3. Интегрировать с TensorFlow: Amazon EMR и AWS обеспечивают совместимость с различными инструментами для машинного обучения, включая TensorFlow.

Для начала вы можете попробовать Amazon EMR в небольшом масштабе, чтобы оценить, подходит ли решение для ваших задач и бюджета. Это поможет вам избежать потенциальных проблем, связанных со сложностью локальной настройки распределенной среды и обеспечит надежное хранение данных без риска их потери.

Оцените материал
Добавить комментарий

Капча загружается...