Apache Hadoop — одно из ведущих решений для распределенной аналитики и хранения данных. Однако с появлением других решений для распределенных вычислений, непосредственно направленных на анализ данных и общие вычислительные потребности, полезность Hadoop была поставлена под сомнение.
В Интернете много споров: актуален ли Hadoop?
На самом деле Apache Hadoop не умер, и многие организации все еще используют его в качестве надежного решения для анализа данных. Одним из ключевых показателей является то, что все основные облачные провайдеры активно поддерживают кластеры Apache Hadoop на своих платформах.
Google Trends показывает, как интерес к Hadoop достиг пика популярности с 2014 по 2017 год. После этого мы видим явное снижение количества запросов Hadoop. Однако это само по себе не является хорошим показателем использования Hadoop в текущих условиях. В конце концов, Hadoop можно интегрировать в другие платформы, чтобы сформировать законченное аналитическое решение.
В этой статье мы узнаем больше о Hadoop, его удобстве использования и о том, будет ли он заменен быстро развивающимися технологиями, такими как Kubernetes и разработка Cloud-Native.
- Что такое Hadoop?
- Модули Hadoop
- Преимущества Hadoop
- Недостатки Hadoop
- Неэффективен для небольших наборов данных
- Проблемы безопасности
- Недостаток удобства для пользователя
- Не подходит для аналитики в реальном времени
- Альтернативы Hadoop
- Apache Spark
- Apache Flink
- Заменит ли Kubernetes и облачные технологии Hadoop?
- Переносимость Kubernetes
- Поддержка Kubernetes для бессерверных вычислений
- Hadoop дешево обрабатывает большие наборы данных
Что такое Hadoop?
Hadoop — это платформа с открытым исходным кодом, которая используется для эффективного хранения и обработки массивных наборов данных. Это надежная и масштабируемая платформа распределенных вычислений, которую можно использовать на стандартном оборудовании.
Hadoop распределяет свои рабочие нагрузки по хранению данных и аналитике между несколькими узлами (компьютерами) для параллельной обработки работы. Это приводит к более быстрым, высокоэффективным и недорогим возможностям анализа данных.
Модули Hadoop
Hadoop состоит из четырех основных модулей, обеспечивающих его функциональность:
- HDFS. Распределенная файловая система Hadoop — это файловая система, которая может работать на недорогом оборудовании, обеспечивая при этом лучшую пропускную способность, чем традиционные файловые системы. Кроме того, он имеет встроенную отказоустойчивость и способность обрабатывать большие наборы данных.
- YARN. «Еще один согласователь ресурсов» используется для управления задачами, планирования заданий и управления ресурсами кластера.
- MapReduce. MapReduce — это механизм обработки больших данных, который поддерживает параллельное вычисление больших наборов данных. Это механизм обработки по умолчанию, доступный в Hadoop. Однако в настоящее время Hadoop также поддерживает другие механизмы, такие как Apache Tezи Apache Spark.
- Hadoop Common. Hadoop Common предоставляет общий набор библиотек, который можно использовать во всех других модулях Hadoop.
Преимущества Hadoop
Теперь давайте рассмотрим несколько основных причин популярности Apache Hadoop.
- Вычислительная мощность. Модель распределенных вычислений Hadoop позволяет обрабатывать неограниченное количество одновременных задач.
- Безопасность данных. Hadoop автоматически создает резервные копии данных и управляет ими. Таким образом, вы можете просто восстановить данные из резервной копии в случае сбоя.
- Расходы. Возможность Hadoop работать на стандартном оборудовании позволяет организациям легко развертывать с его помощью платформу анализа данных. Это также устраняет необходимость в дорогом и специализированном оборудовании.
- Доступность. Hadoop разработан для обработки сбоев на уровне приложений, что означает, что он обеспечивает высокую доступность, не полагаясь на оборудование.
Благодаря своей гибкости и масштабируемости Hadoop быстро завоевал признание как отдельных инженеров / аналитиков данных, так и корпораций. Эта гибкость распространяется на типы данных, которые может собирать Hadoop:
- Структурированный и неструктурированный
- Через различные входы, такие как социальные сети, потоковые данные, внутренние коллекции и т.д.
Затем Hadoop проверяет все эти наборы данных и определяет полезность каждого набора данных. Все это делается без необходимости проходить процесс преобразования данных в единый формат.
Еще одна особенность, которая расширяет возможности Hadoop, — это возможности хранения.
После накопления большого набора данных и извлечения необходимых данных мы можем просто бесконечно хранить необработанные данные с помощью Hadoop. Это позволяет пользователям легко ссылаться на старые данные, а затраты на хранение также минимальны, поскольку Hadoop работает на стандартном оборудовании.
Недостатки Hadoop
Кластеры Apache Hadoop получили известность благодаря всем вышеперечисленным функциям.
Однако по мере развития технологий появляются новые возможности, которые бросают вызов Hadoop и даже превосходят его в некоторых аспектах. Это, наряду с присущими Hadoop ограничениями, означает, что он действительно потерял свое лидерство на рынке.
Итак, каковы недостатки Hadoop?
Неэффективен для небольших наборов данных
Hadoop предназначен для обработки больших данных, состоящих из огромных наборов данных. Это очень неэффективно при обработке небольших наборов данных. Hadoop не подходит для быстрой аналитики небольших наборов данных и не требует больших затрат.
Другая причина: хотя Hadoop может комбинировать, обрабатывать и преобразовывать данные, он не обеспечивает простой способ вывода необходимых данных. Это ограничивает доступные варианты для групп бизнес-аналитики для визуализации и создания отчетов по обработанным наборам данных.
Проблемы безопасности
Hadoop по умолчанию включает слабое обеспечение безопасности и не реализует шифрование на уровне хранилища или сети. Hadoop официально поддерживает только аутентификацию Kerberos, и эту технологию сложно поддерживать самостоятельно.
В каждой конфигурации Hadoop пользователям необходимо вручную включать параметры безопасности или использовать сторонние инструменты для настройки безопасных кластеров.
Недостаток удобства для пользователя
Hadoop разработан с использованием Java, одного из ведущих языков программирования с большой базой разработчиков. Однако Java — не лучший язык для анализа данных, и он может быть сложным для новых пользователей.
Это может привести к осложнениям при настройке и использовании — пользователь должен хорошо разбираться в Java и Hadoop, чтобы правильно использовать и отлаживать кластер.
Не подходит для аналитики в реальном времени
Hadoop разработан с отличной поддержкой пакетной обработки. Однако из-за своих ограничений в обработке небольших наборов данных и отсутствия встроенной поддержки аналитики в реальном времени Hadoop плохо подходит для быстрой аналитики в реальном времени.
Альтернативы Hadoop
Итак, какие еще варианты Hadoop доступны? Хотя единого решения для полной замены Hadoop не существует, существуют новые технологии, которые могут уменьшить или устранить необходимость в Hadoop.
Apache Spark
Apache Spark — это одно из решений, предоставленное самой командой Apache, для замены MapReduce, механизма обработки данных Hadoop по умолчанию. Spark — это новый механизм обработки данных, разработанный для устранения ограничений MapReduce.
Apache утверждает, что Spark почти в 100 раз быстрее, чем MapReduce, и поддерживает вычисления в памяти. Более того, он поддерживает обработку в реальном времени, создавая микропакеты данных и обрабатывая их.
Поддержка Spark для современных языков позволяет вам взаимодействовать, используя предпочитаемые вами языки программирования. Spark предлагает отличную поддержку для анализа данных с использованием таких языков, как:
- Scala
- Python
- Spark SQL
Apache Flink
Еще одно доступное решение — Apache Flink. Flink — это еще один механизм обработки с теми же преимуществами, что и Spark. Flink предлагает даже более высокую производительность в некоторых рабочих нагрузках, поскольку он предназначен для обработки вычислений с сохранением состояния в неограниченных и ограниченных потоках данных.
Заменит ли Kubernetes и облачные технологии Hadoop?
Даже с новыми и более быстрыми механизмами обработки данных Hadoop по-прежнему ограничивает пользователей своими инструментами и технологиями, такими как HDFS и YARN, с инструментами на основе Java. Но что, если вам нужно интегрировать другие инструменты и платформы, чтобы получить максимальную отдачу от ваших конкретных потребностей в хранении данных и аналитике?
Решение использует Kubernetes в качестве механизма оркестровки для управления вашим кластером.
Благодаря постоянно растущей популярности контейнерных облачных приложений Kubernetes стал ведущей платформой оркестровки для управления любым контейнерным приложением. Он предлагает такие функции, как:
- Удобное управление
- Сети
- Масштабирование
- Высокая доступность
Рассмотрим такой сценарий: вы хотите перейти на дешевые варианты облачного хранилища, такие как корзины Amazon S3, и управляемые хранилища данных, такие как Amazon Redshift, Google BigQuery, Panoply. Это невозможно с Hadoop.
Kubernetes, тем временем, может легко подключить их к кластерам Kubernetes, чтобы контейнеры могли получить доступ к ним. Точно так же кластеры Kubernetes имеют неограниченное хранилище с сокращенными обязанностями по обслуживанию, поскольку облачные провайдеры управляют всем повседневным обслуживанием и доступностью данных.
После сортировки хранилища Kubernetes может размещать различные сервисы, такие как:
- Инструменты аналитики больших данных (Apache Spark, Presto, Flink)
- Научные данные инструменты ( BigML, Jupyter, NLTK, TensorFlow, PyTorch, MATLAB)
- Любой другой инструмент в кластере Kubernetes
Это дает вам свободу использовать любые инструменты, фреймворки или языки программирования, с которыми вы уже знакомы или наиболее подходящие для вашего варианта использования — вы больше не ограничены Java.
Переносимость Kubernetes
Еще один фактор, улучшающий Kubernetes, — это его портативность. Kubernetes можно легко настроить для распределения во многих местах и работы в нескольких облачных средах. С помощью контейнерных приложений пользователи могут легко перемещаться между средой разработки и производственной средой, чтобы упростить анализ данных в любом месте без серьезных изменений.
Комбинируя Kubernetes с конвейерами быстрого DevOps и CI / CD, разработчики могут легко создавать, тестировать и развертывать приложения для анализа данных, машинного обучения и искусственного интеллекта практически в любом месте.
Поддержка Kubernetes для бессерверных вычислений
Kubernetes еще больше устранил необходимость в отдельном управлении инфраструктурой благодаря поддержке бессерверных вычислений. Бессерверные вычисления — это развивающаяся технология, в которой облачная платформа автоматически управляет аппаратными ресурсами и масштабирует их в соответствии с потребностями приложения.
Некоторые контейнерные вычислительные платформы с открытым исходным кодом и вычислительные платформы, работающие как услуга, такие как fn, Apache OpenWhisk и nuclio, могут быть легко интегрированы с Kubernetes для запуска бессерверных приложений, что устраняет необходимость в таких технологиях, как Hadoop.
Некоторые фреймворки, такие как Nuclio, специально предназначены для автоматизации конвейеров обработки данных с помощью бессерверных функций.
Обладая всеми вышеупомянутыми преимуществами, Kubernetes постепенно становится идеальным выбором для управления любыми рабочими нагрузками с большими данными.
Hadoop дешево обрабатывает большие наборы данных
Как и любая другая технология, Hadoop также предназначен для удовлетворения конкретных потребностей — эффективной обработки больших наборов данных с использованием стандартного оборудования.
Однако развивающиеся технологические тенденции породили новые требования и варианты использования. Hadoop не умер, но другие технологии, такие как Kubernetes и бессерверные вычисления, предлагают гораздо более гибкие и эффективные варианты.
Таким образом, как и в случае с любой другой технологией, вы должны определить и использовать правильный технологический стек для своих нужд.