Введение в альтернативы Hadoop

Apache Hadoop - это чудовищный фреймворк, который использует несколько других компонентов, таких как HDFS, Hive, Spark, YARN и Zookeeper. Он используется для обработки и анализа данных, полученных из внутренних или внешних источников. Он может масштабироваться от нескольких машин или серверов до тысяч из них. Есть много встроенных библиотечных функций, которые могут обнаруживать и обрабатывать неисправности.

Компоненты Hadoop

1) Распределенная файловая система Hadoop (HDFS):

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

2) MapReduce:

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

3) Улей:

Среда с открытым исходным кодом, которая используется для запроса структурированных данных с использованием языка Hive-Query. Функция индексации используется для ускорения процесса запроса.

4) Амбари:

Платформа для мониторинга состояния кластера и автоматизации операций. Он имеет простой веб-интерфейс и может быть легко установлен и настроен.

Список альтернатив Hadoop

Ниже приведены различные альтернативы Hadoop:

Пакетная обработка

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

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

Это также известно как Stream-Processing. Здесь данные обрабатываются время от времени, так как они генерируются, чтобы обеспечить быстрое понимание вероятных результатов. Обнаружение землетрясений и фондовые рынки являются лучшими примерами, где анализ в режиме реального времени является обязательным.

Apache Spark

Spark - это среда, используемая вместе с Hadoop для обработки пакетных данных или данных в реальном времени на кластерных машинах. Его также можно использовать как автономный, для извлечения и хранения данных на сторонних серверах без использования HDFS. Это продукт с открытым исходным кодом. Он предоставляет API, написанные с использованием SCALA, R или Python, которые поддерживают общую обработку. Для обработки структурированных данных можно использовать Spark-SQL. Spark Streaming выполняет очень необходимую аналитику в реальном времени. Spark обеспечивает поддержку машинного обучения с использованием MLIB. В конце концов, обработанные данные можно просмотреть с помощью Graphix.

Наиболее заметная особенность Spark - обработка в памяти. Вся обработка данных происходит в памяти, а не на диске. Этот метод экономит время чтения-записи ввода на диск и вывода обратно с него. Spark молниеносно и почти в 100 раз быстрее, чем обработка Hadoop. Вся функция определена и передана в контекст Spark. Только тогда обработка начинается с нуля. Этот метод известен как Ленивое выполнение. Кафка, Flume используются в качестве входных данных для потоковой передачи данных. Структурированные или неструктурированные данные могут использоваться Spark для анализа. Потоки данных - это набор данных за определенный промежуток времени в Spark Streaming. Они преобразуются в партии и передаются в Spark Engine для обработки. Структурированные данные преобразуются в фреймы данных перед использованием Spark-SQL для дальнейшего анализа.

Apache Storm

Apache Storm также является одной из альтернатив Hadoop, которая лучше всего подходит для распределенной аналитики в реальном времени. Он прост в настройке, удобен в использовании и не обеспечивает потери данных. Шторм имеет очень высокую вычислительную мощность и обеспечивает низкую задержку (обычно в секундах) по сравнению с Hadoop.

Мы подробнее рассмотрим рабочий процесс Storm:

  • Топология шторма (похожая на группу обеспечения доступности баз данных, но физический план выполнения) передается в Nimbus (мастер-узел).
  • Задачи и порядок их выполнения представляются в Nimbus.
  • Nimbus равномерно распределяет доступные задачи для контролеров (носики), и процесс выполняется рабочими узлами (болтами).
  • Здоровье носиков и болтов постоянно контролируется с помощью пульса. Как только руководитель умирает, Nimbus распределяет задачу другому узлу.
  • Если Nimbus умирает, он автоматически перезапускается инструментами мониторинга. Между тем, надзорные органы продолжают выполнять свои задачи, которые были назначены ранее.
  • После перезапуска Nimbus он продолжает работать с того места, где остановился. Следовательно, потеря данных не происходит, и каждые данные проходят через топологию хотя бы один раз.
  • Топология продолжает работать до тех пор, пока Nimbus не будет завершен или принудительно отключен.
  • Storm использует Zookeeper для мониторинга Nimbus и других узлов супервизора.

Большой запрос

Базы данных используются для транзакционной обработки. Менеджеры создают отчеты и анализируют данные из различных баз данных. Хранилища данных были введены для извлечения данных из нескольких баз данных по всей организации. Google разработал Big query, который является хранилищем данных, управляемым самим собой. Для обработки очень сложных запросов могут потребоваться высокопроизводительные серверы и машины Node, которые могут стоить очень дорого. Настройка инфраструктуры может занять до нескольких недель. Как только максимальный порог достигнут, его необходимо увеличить. Чтобы преодолеть эти проблемы, Big query предоставляет хранилище в виде облака Google. Рабочие узлы масштабируются до размера центра обработки данных, если необходимо выполнить сложный запрос в течение нескольких секунд. Вы платите за то, что используете, т.е. за запросы. Google заботится о ресурсах, их обслуживании и безопасности. Выполнение запросов в обычных базах данных может занять от минут до часов. Большой запрос обрабатывает данные намного быстрее, и он в основном подходит для потоковой передачи данных, таких как онлайн-игры и Интернет вещей (IoT). Скорость обработки достигает миллиардов строк в секунду.

престо

Запрос Presto можно использовать для объединения данных из различных источников в организации и их анализа. Данные могут находиться в Hive, RDBMS или Cassandra. Presto лучше всего подходит для аналитиков, которые ожидают полный запрос отчета в течение нескольких минут. Архитектура аналогична классической системе управления базами данных с использованием нескольких узлов в кластере. Он был разработан Facebook для проведения анализа и поиска информации по их внутренним данным, включая хранилище данных на 300 ПБ. Более 30 000 запросов выполняются на их данных для сканирования в петабайт в день. Другие ведущие компании, такие как Airbnb и Dropbox, также используют Presto.

Рекомендуемая статья

Это было руководство по альтернативам Hadoop. Здесь мы обсуждаем компоненты Hadoop, пакетную обработку и обработку альтернатив Hadoop в реальном времени. Вы также можете посмотреть следующие статьи, чтобы узнать больше:

  1. Работа администратора Hadoop
  2. Hadoop против производительности SQL
  3. Карьера в Hadoop
  4. Hadoop vs Spark
  5. Администратор Hadoop | Навыки и карьера