Введение в Hadoop

Сегодня наблюдается большой интерес к технологиям класса BIG DATA, связанный с постоянным ростом данных, которыми приходится оперировать крупным компаниям. Накопленная информация для многих организаций является важным активом, однако обрабатывать ее и извлекать из нее пользу с каждым днем становится все сложнее и дороже.

Как правило, когда говорят о термине BIG DATA, то используют наиболее популярное определение трех «V», что означает Volume – объем данных, Velocity – необходимость обрабатывать информацию с большой скоростью и Variety – многообразие и часто недостаточную структурированность данных.  Одной из лидирующих технологий, относящихся к классу BIG DATA, является Hadoop.

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

Технология Hadoop представляет собой программный framework, позволяющий хранить и обрабатывать данные с помощью компьютерных кластеров, используя парадигму MapReduce. Данный подход позволяет построить высокопроизводительный кластер на базе low-end или middle-end серверов, что обеспечивает существенно более низкую стоимость решения по сравнению с одним высокопроизводительным сервером.

В основе технологии лежит распределённая файловая система HDFS (Hadoop Distributed File System) – это основная система хранения данных, используемая приложениями Hadoop. HDFS многократно копирует блоки данных и распределяет эти копии по вычислительным узлам кластера, тем самым обеспечивая высокую надежность и скорость вычислений:

  • Данные распределяются по нескольким машинам во время загрузки.
  • HDFS оптимизирована больше для выполнения потоковых считываний файлов, нежели для нерегулярных, произвольных считываний.
  • Файлы в системе HDFS пишутся однократно и внесение никаких произвольных записей в файлы не допускается.
  • Приложения могут считывать и писать файлы Распределенной файловой системы напрямую через программный интерфейс Java.

Вторым важным элементом Hadoop является MapReduce – framework для вычисления распределенных задач. В соответствии с подходом MapReduce обработка данных состоит из двух шагов: Map и Reduce. На шаге Map выполняется предварительная обработка данных, которая осуществляется параллельно на различных узлах кластера. На шаге Reduce происходит сведение предварительно обработанных данных в единый результат.

Технология Hadoop применяется в таких информационных гигантах как Google, Facebook или Amazon, которые оперируют петабайтами данных. За пределами Интернет среды технология может применяться, прежде всего, в Телекоме и в Финансовом секторе, где также присутствуют большие объемы данных.

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

Технология Hadoop активно развивается и сегодня имеется большое количество связанных проектов и инструментов, которые расширяют возможности технологии. Наиболее важные из них приведены ниже:

  • HBase - NoSQL база данных для хранения данных огромного объема. Позволяет выдавать информацию в режиме близком к реальному времени.
  • Hive - Надстройка для Hadoop, которая позволяет хранить данные в виде таблиц и обращаться к данным с помощью SQL-подобного синтаксиса.
  • Pig - это платформа, предназначенная для анализа больших наборов данных и состоящая из языка высокого уровня для написания программ анализа данных и инфраструктуры для запуска этих программ. Язык характеризуется  относительно простым синтаксисом. Написанные  сценарии скрыто преобразуются в задачи MapReduce, которые исполняются на кластере Hadoop.
  • Mahout - Набор библиотек, которые можно использовать в MapReduce и применять алгоритмы Data Mining.
  • Rhadoop - Надстройка над Hadoop для выполнения программ, написанных на языке R. Как и Mahout позволяет использовать алгоритмы Data Mining.
  • Oozie - Утилита позволяет создавать workflow из программ MapReduce, запросов Hive и Pig.
  • Hue - Web интерфейс к Hadoop для мониторинга заданий, выполняющихся на кластере, и облегчения обслуживания кластера.
  • Sqoop - Утилита для загрузки данных из реляционных баз данных в кластер Hadoop и для выгрузки данных обратно БД

 

Тэги: big data hadoop mapreduce большие данные


 


 
архив

подписка