Четыре способа, которыми Kubernetes вторгается в экосистему больших данных Hadoop

Опубликовано: 28 Февраля, 2023
Четыре способа, которыми Kubernetes вторгается в экосистему больших данных Hadoop

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

Кратко о Hadoop

Hadoop — это платформа с открытым исходным кодом, предназначенная для хранения и анализа больших объемов неструктурированных данных. Он поддерживает распределенную обработку (через MapReduce) и хранение (распределенная файловая система Hadoop или HDFS) данных. Hadoop можно использовать для сбора широкого спектра типов данных, включая структурированные данные (реляционные базы данных и т. д.), частично структурированные данные (такие как журналы, электронные письма и т. д.), а также неструктурированные данные (такие как потоки кликов, данные социальных сетей, так далее.). Его первая версия, Hadoop 0.1.0, была выпущена в апреле 2006 года, и ее популярность росла. В частности, он использует два ключевых аспекта: предоставление огромных возможностей обработки с использованием коммерческих аппаратных устройств и наличие отказоустойчивой архитектуры данных для предотвращения потери данных.

Основные проблемы

Hadoop считается ведущей платформой для работы с большими данными, когда требуется обрабатывать огромные массивы данных. Но он считается неэффективным для обработки небольших наборов данных. Hadoop хорошо справляется с обработкой терабайтов данных, хранящихся в файлах. Тем не менее, его производительность немного сомнительна, когда требуется интерактивная и итеративная аналитика предоставленного набора данных или когда предприятиям нужна аналитика в реальном времени. Кроме того, работа с инфраструктурой Hadoop требует от пользователей изучения нового набора навыков и концепций. Различные компоненты Hadoop, в том числе MapReduce, Hive, Pig и Spark, имеют собственную независимую методологию, которая предполагает крутую кривую обучения для пользователей.

Набирают силу новые тренды

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

1. Мультиарендность заменяет разрозненность ИТ

Hadoop был создан в эпоху, когда сетевые задержки были одной из основных проблем, с которыми сталкивались организации. Организации предпочитали размещать все свои данные в собственном центре обработки данных, чтобы избежать перемещения больших объемов данных в аналитических целях. И Hadoop предоставил оптимальное решение для таких проблем, разделив возможности обработки данных и переместив их в места хранения данных посредством параллельной обработки.

Однако с развитием концепции микросервисов и технологии контейнеров организации быстро осознают, что размещение всех данных в облачном хранилище дает несколько дополнительных преимуществ. Несколько компонентов стека больших данных (например, Spark и Kafka) можно более эффективно размещать и использовать в облачной среде Kubernetes. Приложения, размещенные в контейнерах, можно легко запускать по требованию и завершать работу в соответствии с требованиями.

Кроме того, кластеры на основе контейнеров позволяют организациям запускать несколько инструментов обработки данных, таких как Jupyter или PyTorch, в одной и той же облачной среде. С Yarn различные рабочие нагрузки Hadoop и Spark часто работали как разрозненные подсистемы и требовали дополнительных ресурсов и навыков. Kubernetes также предоставляет возможность управлять устаревшим оборудованием для таких сервисов, как планирование с учетом приложений. Контейнеры на основе Kubernetes также помогают стандартизировать общую семантику высокой доступности, мониторинга и обновлений во всей среде с помощью API, а также дополнительных наборов инструментов, которых не было в Hadoop.

Изображение 185
Freepik / Вектор дизайна, созданный Macrovector

2. Kubernetes заменяет YARN

Kubernetes, технология оркестрации контейнеров с открытым исходным кодом, позволяет пользователям выполнять свои рабочие нагрузки в частных, общедоступных и гибридных облаках. Хотя большинство современных аналитических приложений и сервисов представляют собой инструменты на основе Python, работающие с архитектурой микросервисов, с YARN пользователи ограничены инструментами на основе Hadoop и Java, а также платформой HDFS. Организации, вероятно, понимают, что управлять облачными системами хранения и базами данных проще, чем поддерживать локальную ферму данных с файловой системой Hadoop.

Согласно сообществу StackShare, Kubernetes получил большее признание, чем YARN. В то время как у Kubernetes 54,2 тыс. звезд GitHub и 18,8 тыс. форков на GitHub, у YARN 36,1 тыс. звезд GitHub и 2,21 тыс. форков GitHub.

В 2019 году Cloudera, один из флагманов технологии Hadoop (который объединился с другим флагманом Hortonworks), выпустила свое новое облачное предложение Cloudera Data Platform (CDP), которое работает на Kubernetes вместо YARN. Хотя в то же время она также выпустила версию CDP на основе YARN, которая называется Cloudera Data Hub (CDH), которая позволяет пользователям запускать свои традиционные приложения MapReduce и Spark на основе YARN на популярных облачных платформах AWS и Azure. В том же году Google также объявил, что заменит YARN на Kubernetes для планирования Apache Spark.

3. Искра работает в Kubernetes

Apache Spark, унифицированный аналитический механизм с открытым исходным кодом, используется для быстрой обработки огромных объемов данных. С момента своего первого выпуска в 2014 году он был принят несколькими глобальными предприятиями, включая Netflix, eBay и Yahoo, для обработки терабайтов и петабайтов данных. Он также быстро стал одним из ведущих сообществ с открытым исходным кодом с большим количеством участников. Spark может обрабатывать большие блоки данных, хранящиеся на нескольких компьютерах, параллельно обрабатывая несколько наборов данных одновременно. Spark может работать в автономном режиме, если на каждом компьютере установить только инфраструктуру Apache Spark и JVM. Однако для более надежных возможностей управления ресурсами и кластерами Spark требуется внешний объект (планировщик) для управления всеми этими машинами. Пользователи могут выбирать из различных возможных вариантов, а именно Apache Mesos, Docker Swarm, Hadoop YARN или Kubernetes.

Запуск Spark в Kubernetes дает несколько преимуществ по сравнению со средой на основе Hadoop YARN. Фреймворк Apache Spark предоставляет разработчикам удобные API, что делает его гораздо более совместимым с Kubernetes. Когда Spark развертывается с помощью Hadoop, для обработки Spark требуется выделенный кластер Hadoop. С другой стороны, когда Spark развертывается с помощью Kubernetes, пользователи могут использовать несколько рабочих нагрузок, таких как другой код Python или R или другие веб-приложения в одной и той же среде унифицированной инфраструктуры.

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

4. Kubernetes соответствует ожиданиям в отношении больших данных

На этапе своего развития Hadoop предоставил три основные функции, которые сделали его готовым к работе с большими данными: механизм распределенного компьютера (MapReduce), надежное хранилище данных (HDFS) и диспетчер ресурсов (YARN/Mesos). Но современные технологии теперь обеспечивают лучшую замену каждому из этих трех компонентов: Kubernetes как эффективный менеджер ресурсов, Amazon S3 для хранения данных и Spark и Flink как решения для распределенных вычислений.

Кроме того, окружающая экосистема способствует этому процветающему режиму Kubernetes. Kafka, Cassandra, Redis, MongoDB, Elasticsearch и ряд других поставщиков теперь включают установки на основе Kubernetes как часть своего полностью управляемого облачного предложения. Кроме того, почти все основные корпоративные приложения, включая Apache Tomcat, Zeppelin, JupyterHub, Nginx, MySQL и многие другие, легко доступны в виде контейнерных образов.

Поэтому будет справедливо сказать, что Kubernetes стал предпочтительной платформой для требований к большим данным. Тем не менее, Hadoop по-прежнему будет играть роль во многих рабочих нагрузках с большими данными, когда организации вложили значительные средства в экосистему Hadoop. Этим организациям дороже отказаться от своих прошлых инвестиций и начать с нуля с Kubernetes.

Kubernetes становится платформой для размещения приложений для работы с большими данными

Большинству приложений для работы с большими данными требуется масштабируемая и расширяемая архитектура для обеспечения максимальной производительности. И по этой причине Kubernetes стал предпочтительным вариантом развертывания для многих поставщиков программного обеспечения, предлагающих различные базы данных или аналитические услуги. Но Kubernetes все еще сталкивается с некоторыми проблемами, прежде чем его можно будет назвать комплексным решением для развертывания всего стека больших данных. У него могут быть лучшие варианты постоянного хранения данных для разных заданий, поскольку его контейнерная архитектура предназначена для размещения приложений без сохранения состояния и недолговечных приложений. Кроме того, он все еще совершенствуется с точки зрения безопасности данных и работы в сети. Однако Kubernetes получает огромную поддержку со стороны сообщества разработчиков открытого исходного кода, и с каждым днем разрабатываются новые возможности. Kubernetes обладает полным потенциалом, чтобы вскоре стать идеальной платформой для размещения всех приложений больших данных.