Hadoop. Вводная лекция


Содержание

Hadoop. Вводная лекция

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

Математика*,
Высокая производительность*,
Веб-разработка*,
Big Data*,
Блог компании Mail.Ru Group
Предлагаем вашему вниманию новый курс лекций Техносферы. Он представляет собой введение в Hadoop, фокусируясь на проектировании и реализации распределенных алгоритмов, которые могут применяться в различных сферах: обработка текстов, графов, связанных данных и т.п. Также рассматриваются различные компоненты платформы Hadoop и программные модели. Целью курса является знакомство студентов со стеком технологий Hadoop, применяемых для хранения, доступа и обработки больших объемов данных. Преподаватели курса: Алексей Романенко, Михаил Фирулик, Николай Анохин.

[b]Лекция 1. Введение в Big Data и MapReduce[/b]

Что такое «большие данные». История возникновения этого явления. Необходимые знания и навыки для работы с большими данными. Что такое Hadoop, где он применяется. Что такое «облачные вычисления», история возникновения и развития технологии. Web 2.0. Вычисление как услуга (utility computing). Виртуализация. Инфраструктура как сервис (IaaS). Вопросы параллелизма. Управление множеством воркеров. Дата-центры и масштабируемость. Типичные задачи Big Data. MapReduce: что это такое, примеры. Распределённая файловая система. Google File System. HDFS как клон GFS, его архитектура.

[b]Лекция 2. Основы Hadoop[/b]

История Hadoop и его применение. Хранение данных, кластер Hadoop. Системные принципы. Горизонтальное масштабирование вместо вертикального. Код к данным. Отказы оборудования. Инкапсуляция сложности реализации. Сравнение с СУБД (RDBMS). Экосистема Hadoop. Дистрибутивы, вендоры, поддерживаемые ОС. Полезная литература. Hadoop на Cloudera VM. Импорт и запуск VM. Копирование файлов в HDFS. Запуск MapReduce-задачи в Hadoop. Проверка результатов.

[b]Лекция 3. Распределённая файловая система HDFS[/b]

Задачи, для которых подходит и не подходит HDFS. Демоны HDFS. Файлы и блоки. Репликация блоков. Клиенты, Namenode и Datanodes. Чтение и запись файла. Namenode: использование памяти. Устойчивость к отказам в Namenode. Доступ к HDFS, в том числе через прокси. Команды оболочки shell. Копирование данных в shell, удаление и статистика. Команда fsck. Права в HDFS. Команда DFSAdmin. Балансер. File System Java API. Реализация File System. Объект Configuration. Чтение данных из файла и запись в него. Подстановки (globbing).

[b]Лекция 4. MapReduce в Hadoop (введение)[/b]

Рабочий процесс MapReduce. Hadoop MapReduce и HDFS. Выполнение MapReduce. Архитектура и работа первой версии MapReduce. Hadoop API (типы, классы). WordCount (Congigure Job, Mapper, Reducer). Reducer в качестве Combiner. Типы данных в Hadoop. InputSplit, InputFormat, OutputFormat. Shuffle и Sort в Hadoop. Запуск и отладка задач. Hadoop Streaming. Streaming в MapReduce.

[b]Лекция 5. MapReduce в Hadoop (алгоритмы)[/b]

WordCount (baseline, In-mapper combining, среднее значение, различающиеся значения). Кросс-корреляция (pairs, stripes). Реляционные паттерны MapReduce (Selection, Projection, Union, Intersection, Difference, Symmetric Difference, GroupBy и Aggregation, Repartition Join, Replicated Join, TF-IDF).

[b]Лекция 6. MapReduce в Hadoop (графы)[/b]

Граф как структура данных. Задачи и проблемы на графах. Графы и MapReduce. Матрица смежности. Списки смежности. Поиск кратчайшего пути. Алгоритм Дейкстры. Параллельный BFS: алгоритм, псевдокод, итерации, критерий завершения, сравнение с Дейкстерой. BFS weighted: edges, критерий завершения, сложности. Графы и MapReduce. PageRank: что это такое, где применяется. Вычисление PageRank, упрощения для него. PageRank на MapReduce. Полный PageRank, сходимость. Другие классы проблем на графах. Основные проблемы для алгоритмов на графах. Улучшение партиционирования. Schimmy Design Pattern.

[b]Лекция 7. Введение в Pig и Hive[/b]

Что такое Pig, для чего используется. Pig и MapReduce. Основные возможности. Компоненты. Режимы выполнения. Запуск Pig. Pig Latin. Операции DUMP и STORE. Большой объём данных. Команда LOAD. Типы данных для схемы. Pig Latin (cредства диагностики, группировка, Inner и Outer bag, FOREACH, функция TOKENIZE, оператор FLATTEN, WordCount, Inner и Outer Join). Hive (архитектура, интерфейс, концепция, создание таблицы, загрузка данных, выполнение запроса, Inner и Outer Join, WordCount).

[b]Лекция 8. NoSQL, HBase, Cassandra[/b]

Масштабирование вверх. Масштабирование RDBMS (master/slave, sharding). Что такое NoSQL. Dynamo и BigTable. Теория CAP. Модель консистентности. Eventual Consistency. Типы NoSQL. Key/Value. Schema-Less. Что такое HBase, когда его нужно и когда не нужно использовать. Модель данных HBase. Column Family. Timestamp. Ячейки. Архитектура и компоненты HBase. Распределение ключей в RegionServer. Хранение данных в HBase. Master и Zookeeper. Доступ к HBase. Column Family как единица хранения. Запрос данных из HBase. Что такое Cassandra. Типичный NoSQL API. Модель данных. Cassandra и консистентность.

[b]Лекция 9. ZooKeeper[/b]

Что такое ZooKeeper, его место в экосистеме Hadoop. Неправда о распределённых вычислениях. Схема стандартной распределённой системы. Сложность координации распределённых систем. Типичные проблемы координации. Принципы, заложенные в дизайн ZooKeeper. Модель данных ZooKeeper. Флаги znode. Сессии. Клиентский API. Примитивы (configuration, group membership, simple locks, leader election, locking без herd effect). Архитектура ZooKeeper. ZooKeeper DB. ZAB. Обработчик запросов.

[b]Лекция 10. Apache Mahout[/b]

Что такое Apache Mahout. Реализованные алгоритмы. Классификация (Naive Bayes, k-Means). Рекомендации (коллаборативная фильтрация, Item-based, алгоритм Slop One, Apache.teste, Item-based с Hadoop, Mahout со Spark, co-occurrence recommenders).

[b]Лекция 11. Вычислительная модель Pregel[/b]

Web 2.0 и социальные графы. Примеры графов. Задачи обработки графов. Средства обработки больших графов. Pregel (что это такое, концепция). Vertex. Метод compute. Combiner. Aggregator. Изменение графа. Giraph (архитектура, выполнение программы, отказоустойчивость). PageRank. Кратчайшие пути. Производительность.

Мотивация. RDD. Программная модель Spark. Higher-Order Functions. Трансформация RDD (Map, Reduce, Join, CoGroup, Union и Sample). RDD actions. SparkContext. Создание RDD. Общие переменные (broadcast, accumulator). Движок Apache Spark. Программный интерфейс Spark. Lineage. Зависимости между RDD (Narrow, Wide). Расписание задач. Отказоустойчивость RDD. Управление памятью. Приложения, которые подходят и не подходят для RDD.

Что такое YARN, для чего он нужен. YARN и старый MapReduce. Компоненты MapReduce на YARN. Выполнение MR-задачи на YARN. Запуск MapReduce-задачи. Инициализация задачи. Инициализация MRAppMaster. MRAppMaster и Uber Job. Назначение задач. Управление памятью (создание контейнеров для запуска задач, контроль памяти для каждой задачи, JVM-куча, виртуальная память). Выполнение задач. Обновления статуса. Веб-интерфейс Resource Manager. Сбои выполнения задач. Сбои Application Master. Сбои Node Manager. Сбои Resource Manager. Расписание задач.

[b]Лекция 14. Hadoop в Поиске Mail.Ru[/b]

История внедрения, компоненты Поиска. Почему Hadoop? Почему HBase? Поисковый робот (Old school, New generation H). Что мы храним в HBase? Работа с Hadoop. Трудности перевода. Эксплуатация (Ganglia). Полезные уроки Hadoop и HBase.

Подписывайтесь на youtube-канал Технопарка и Техносферы!

Hadoop Лекция 8. Основы администрирования Hadoop. — презентация

Презентация была опубликована 6 лет назад пользователемasozykin.ru

Похожие презентации

Презентация на тему: » Hadoop Лекция 8. Основы администрирования Hadoop.» — Транскрипт:

1 Hadoop Лекция 8. Основы администрирования Hadoop

2 План Установка Hadoop Администрирование MapReduce Администрирование HDFS

3 Установка Hadoop Операционные системы: Linux (продуктивные системы и разработка) Windows (только для разработки) Unix (официально не поддерживается) Необходимое ПО: Java SSH клиент и сервер Cygwin (для Windows)

4 Дистрибутивы Hadoop Дистрибутивы: Apache Yahoo! Cloudera В курсе используется дистрибутив Apache Дистрибутивы Yahoo! и Cloudera включают патчи и дополнительные компоненты (Pig, HBase, безопасность и т.п.)

5 Режимы работы Hadoop Локальный Все задачи выполняются на одной машине, данные хранятся в локальной файловой системе Псевдо-распределенный Все задачи выполняются на одной машине, но используется HDFS и JobTracker Распределенный Работа на кластере из нескольких машин, используется HDFS и JobTracker

6 Локальная установка Установить Java 1.6 (желательно от Sun) Скачать дистрибутив Hadoop Распаковать дистрибутив В конфигурационном файле conf/hadoop- env.sh прописать путь к Java в переменную JAVA_HOME Проверить работоспособность: $ bin/hadoop


7 Karmasphere Studio Альтернативный вариант локальной установки для рабочего места разработчика: Установка Karmasphere Studio Karmasphere Studio включает преконфигурированные дистрибутивы Hadoop разных версий Установка Karmasphere Studio – см. лекцию 4. Для Windows нужен cygwin

8 Псевдо-распределенный режим Особенности локального режима: Задачи Hadoop запускаются в рамках одного процесса Java Данные берутся и записываются в локальную файловую систему Псевдо-распределенный режим: Для запуска задач используется JobTracker и TaskTracker, для Map и Reduce созлаются отдельные процессы Доступна HDFS

/.ssh/authorized_keys $ ssh localhost » title=»Установка в псевдо- распределенном режиме Выполнить все действия локальной установки Настроить доступ на локальную машину по SSH без пароля: $ ssh-keygen -t dsa -P » -f

/.ssh/authorized_keys $ ssh localhost » > 9 Установка в псевдо- распределенном режиме Выполнить все действия локальной установки Настроить доступ на локальную машину по SSH без пароля: $ ssh-keygen -t dsa -P » -f

/.ssh/authorized_keys $ ssh localhost Отредактировать конфигурационные файлы Hadoop >

/.ssh/authorized_keys $ ssh localhost «> >

/.ssh/authorized_keys $ ssh localhost Отредактировать конфигурационные файлы Hadoop»> >

/.ssh/authorized_keys $ ssh localhost » title=»Установка в псевдо- распределенном режиме Выполнить все действия локальной установки Настроить доступ на локальную машину по SSH без пароля: $ ssh-keygen -t dsa -P » -f

/.ssh/authorized_keys $ ssh localhost «>

10 Конфигурационные файлы Дистрибутив Hadoop состоит из трех компонентов: Core (или Common) – общие компоненты HDFS MapReduce Конфигурационных файлов тоже три, для каждого компонента: conf/core-site.xml conf/hdfs-site.xml conf/mapred-site.xml

11 Конфигурационные файлы В конфигурационных файлах прописываются только параметры, специфичные для данной установки Значения по умолчанию содержатся в файлах: src/core/core-default.xml src/core/hdfs-default.xml src/core/mapred-default.xml

12 Формат конфигурационных файлов Конфигурационный файл включает свойства, состоящие из имени и значения Используется формат xml Пример: fs.default.name hdfs://localhost:9000

13 Конфигурационные файлы для псевдо-распределенного режима Имя свойстваЗначение свойства conf/core-site.xml fs.default.namehdfs://localhost:9000 conf/hdfs-site.xml dfs.replication1 conf/mapred-site.xml mapred.job.trackerlocalhost:9001

14 Назначение свойств fs.default.name Адрес узла имен файловой системы HDFS по умолчанию dfs.replication Фактор репликации, количество копий блоков в HDFS mapred.job.tracker Адрес узла запуска задач

15 Установка в псевдо- распределенном режиме Форматирование HDFS: bin/hadoop namenode –format Запуск Hadoop: bin/start-all.sh Проверка работоспособности через Web-интерфейс: HDFS: JobTracker:

16 Установка кластера Небольшой кластер, до 10 узлов Более крупным кластерам нужна дополнительная настройка

18 Узлы кластера Hadoop: Сервер имен (NameNode), Master Сервер запуска задач (JobTracker), Master Рабочие серверы (DataNode и TaskTracker), slave В небольших кластерах допускается совмещать сервера имен и запуска задач

19 Установка кластера На всех узлах: Синхронизировать время, например по NTP Установить Java Скачать и распаковать дистрибутив Hadoop, прописать путь к Java Настроить доступ без пароля по SSH с каждого узла на каждый В файле conf/slaves прописать имена всех slave серверов, по одному в строке В conf/masters ничего писать не нужно

20 Запуск команд на узлах Часто требуется запустить одинаковые команды на всех узлах кластера Hadoop для этой цели включает специальный скрипт: $ bin/slaves.sh command Скрипт выполнит команду command на всех узлах кластера, указанных в файле conf/slaves

21 Создание каталогов для HDFS HDFS по умолчанию хранит данные во временном каталоге (/tmp в Linux) Данные могут быть потеряны Недопустимо для продуктивных кластеров. Необходимо создать каталоги: Для хранения метаданных на узле имен $ mkdir /home/hadoop/dfs/name Для хранения данных на slave узлах $ bin/slaves.sh mkdir /home/hadoop/dfs/data

22 Конфигурационные файлы Имя свойстваЗначение свойства conf/core-site.xml fs.default.namehdfs://dfs-mater:9000 hadoop.tmp.dir/tmp/hadoop conf/hdfs-site.xml dfs.replication2 dfs.name.dir/home/hadoop/dfs/name dfs.data.dir/home/hadoop/dfs/data conf/mapred-site.xml mapred.job.trackerjobtracker-master:9001 mapred.system.dir/hadoop/mapred/system

23 Назначение свойств hadoop.tmp.dir Адрес временного каталога Hadoop dfs.name.dir Каталог для хранения метаданных HDFS dfs.data.dir Каталог для хранения данных HDFS mapred.system.dir Системный каталог MapReduce, должен находиться в HDFS

24 Установка кластера Заполненные конфигурационные файлы необходимо скопировать на все серверы кластера Форматирование HDFS: $ bin/hadoop namenode –format Запуск кластера: $ bin/start-all.sh Проверка работоспособности через Web:

25 Запуск и остановка кластера Запуск кластера Hadoop: $ bin/start-all.sh Запускается NameNode, JobTracker и на каждом узле в файле conf/slaves DataNode и TaskTracker Запуск отдельных компонентов Hadoop: $ bin/start-dfs.sh $ bin/start-mapred.sh Остановка Hadoop: $ bin/stop-all.sh $ bin/stop-dfs.sh $ bin/stop-mapred.sh

26 Журнальные файлы Hadoop записывает журналы в каталог logs Журналы ведутся отдельно для NameNode, JobTracker, DataNode и TaskTracker Два типа журналов: *.log – журнал операций *.out – файл стандартного вывода

27 Администрирование HDFS Просмотр статуса Проверка целостности файловой системы Управление репликацией Балансировка RackAwareness

28 Средства администрирования HDFS Командная строка: $ bin/hadoop dfsadmin Web:

29 Состояние HDFS $ bin/hadoop dfsadmin -report Configured Capacity: (659.7 GB) Present Capacity: ( GB) DFS Remaining: ( GB) DFS Used: (376 KB) DFS Used%: 0% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: Datanodes available: 3 (3 total, 0 dead)

31 Проверка целостности HDFS Целостность файловой системы: Файлы не повреждены Блоки не потеряны Присутствует необходимое количество копий блоков Причины проблем: Отказ серверов Некорректное выключение кластера Ошибки в ПО Проверка целостности: $ bin/hadoop fsck

32 Управление репликацией Репликация – создание нескольких копий блоков на разных машинах Фактор репликации – количество копий блока. Рекомендации: 1 – для одного сервера 2 – для кластера из 2-4 серверов 3 – для кластера более 4 серверов Фактор репликации задается в файле conf/hdfs-site.xml, параметр dfs.replication

33 Балансировка Балансировка – равномерное распределение блоков данных по серверам Причины нарушения баланса: Добавление или удаление узлов Изменение фактора репликации Запуск балансировщика: $ bin/start-balancer.sh Остановка балансировщика: $ bin/stop-balancer.sh

34 RackAwareness RackAwareness – способность HDFS «понимать», в каком «шкафу» находятся серверы кластера и создавать копии блока в разных шкафах Имена «шкафов» в Hadoop иерархические и похожи на пути в файловой системе: /default-rack («шкаф» по умолчанию) /switch1/rack21 («шкаф» 21, подключенный к коммутатору switch1)

35 RackAwareness Имя «шкафа» Hadoop определяет по IP- адресу сервера Для определения имени «шкафа» Hadoop вызывает внешний скрипт: Имя скрипта указывается в файле conf/core- site.xml, параметр topology.script.file.name Скрипт получает IP-адрес сервера в качетсве аргумента Скрипт должен вернуть имя «шкафа»

36 Итоги Установка Hadoop: Локальный режим Псевдо-распределенный режим Кластер Администрирование Hadoop Администрирование HDFS

37 Дополнительные материалы Hadoop Single Node Setup Hadoop Cluster Setup Hadoop Commands Gu >

BigData и Hadoop

Возможна оплата частями

Курс «Введение в BigData и Hadoop» от школы QALight – это один из самых быстрых и эффективных способов получить знания в столь перспективной сейчас области BigData.

BigData – это тренд в современном мире IT, который включает в себя не только само понятие Больших Данных (т.е. объемов данных, значительно превышающих возможности исчисления обычных СУБД), а и современных инструментов, позволяющих работать с огромными объемами информации разнопланового, постоянно обновляющегося характера. Все больше компаний обращаются к данной технологии, ведь возможность быстро и качественно оперировать нужной информацией в целом океане данных, прямым образом влияет на эффективность работы, а значит и занятие лучших конкурентных позиций на рынке.


В ходе изучения курса, Вам станут подвластны такие понятия и технологии, как BigData, NoSQL, Hadoop, HDFS, MapReduce и YARN. Вы не просто изучите данные термины, но и в ходе практических занятий сможете прощупать все эти технологии собственноручно.

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

Необходимые начальные знания для успешного прохождения курса:

  • Опыт работы с реляционными базами данных и SQL
  • Опыт работы с *nix-подобными системами и знание команд Linux
  • Понимание аппаратного уровня компьютерных систем

Также Вы получаете:

Очень востребованные знания

Сертификат об окончании курса

Занятие 1. Вводная лекция

  • Повторение понятия реляционной базы данных;
  • Объяснение понятий OLTP, OLAP, ETL;
  • Рассмотрение типичной IT-инфраструктуры предприятия с точки зрения хранения и обработки данных;
  • Объяснение понятия Больших Данных, характеристики Больших Данных;
  • Проблемы в обработке Больших Данных;
  • Экскурс в технологии обработки Больших Данных.

Занятие 2. NoSQL базы данных

  • Место NoSQLбазы данных в IT-инфраструктуре предприятия;
  • CAP теорема;
  • Отличие реляционных баз данных от NoSQLбаз данных;
  • Объяснение NewSQLбаз данных;
  • Типы NoSQLбаз данных и примеры их использования;

Занятие 3-4. Начало работы с Hadoop

  • Место Hadoop в IT-инфраструктуре предприятия;
  • Сравнение Hadoop с реляционными и NoSQLбазами данных;
  • Обзор системы Hadoop и типичные примеры использования;
  • Архитектура системы Hadoop;
  • Обзор экосистемных проектов и вендоров Hadoop;
  • Какие ресурсы необходимы для установки кластера?
  • Установка кластера Hadoop в standalonemode, обзор сервисов;
  • Управление кластером Hadoopчерез графический интерфейс и утилиту Hue.
Цукерберг рекомендует:  PHP 7.0-7.1 наиболее важные изменения

Занятие 5-6. Работа с HDFS

  • Архитектура и сервисы HDFS;
  • Как хранятся данные в HDFS?
  • Процесс чтения и запись файлов в HDFS;
  • Инструменты управления HDFS– NameNodeUI и SecondaryNameNodeUI;
  • Использование командной строки для доступа к HDFS;
  • Проблемы при хранении маленьких файлов на HDFS;
  • Основные параметры конфигурации HDFS;
  • Настройка отказоустойчивости HDFS.

Занятие 7-8. MapReduce и YARN

  • Рассмотрение парадигмы MapReduce на примере;
  • Архитектура кластера Hadoopс MapReduceV1;
  • Как работают основные компоненты MapReduceV1;
  • Архитектура кластера Hadoop с YARN;
  • Как работают основные компоненты YARN;
  • Запуск заданий MapReduce и их мониторинг в ResourceManagerUI;
  • Просмотр журналов логгирования в UI и на HDFS;
  • Основные параметры MapReduce, способы установки параметров.

Занятие 9. Работа с Hive и Impala

  • Обзор и архитектура Hive;
  • Таблицы и партиционирование в Hive;
  • Загрузка данных в таблицы Hive;
  • Практические задания на выборку данных с помощью Hive и Impala.

Занятие 10. Финальное собеседование и тестирование по пройденному материалу.

Hadoop. Вводная лекция

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать её на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Скачай курс
в приложении

О курсе

Для кого этот курс

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

Знание языков программирования не является обязательным, но очень желательно. В курсе есть примеры программ и в практических задачах нужно уметь читать и писать код. При этом используются Java и Python. Глубокого знания этих языков не требуется и проблем не будет, если вы знаете только С++. Нужно быть знакомым с Linux и уметь работать в командной строке. Желательно хотя бы немного знать английский язык, т.к. в курсе встречаются термины и надписи на английском.

Введение в 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 и для выгрузки данных обратно БД

Часть 1. Начало работы

Установка и настройка простого кластера

Серия контента:

Этот контент является частью # из серии # статей: Распределенная обработка данных с помощью Hadoop

Этот контент является частью серии: Распределенная обработка данных с помощью Hadoop

Следите за выходом новых статей этой серии.

Как связаться с Тимом

Тим – один из наших наиболее популярных и плодовитых авторов. Познакомьтесь со всеми статьями Тима (EN), опубликованными на сайте developerWorks. Вы можете найти контактные данные в профиле Тима и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks.

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

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

Первоначальная настройка

История проекта Hadoop

Проект Apache Hadoop был создан на основе предыдущих разработок компании Google. Хотя компания Google является обладателем патента данного метода обработки больших объемов данных, она официально делегировала лицензию проекту Hadoop. Более подробную информацию вы можете найти в разделе Ресурсы.

В нашем примере мы будем использовать дистрибутив Hadoop от компании Cloudera. В нем вы найдете поддержку различных дистрибутивов Linux®, поэтому он идеально подходит для начинающих.

В этой статье предполагается, что в вашей системе установлена библиотека cURL, а также имеется поддержка технологии Java™ (версии не ниже 1.6). Если эти условия не выполняются, необходимо добавить требуемый функционал (подробная информация по установке содержится в разделе Ресурсы), прежде чем вы сможете начать работу.

Поскольку я работаю с операционной системой Ubuntu (выпуск Intrepid), для получения дистрибутива Hadoop я использую утилиту apt . Это простая процедура позволяет мне получить готовый бинарный пакет и избавляет от необходимости загрузки и компиляции исходного кода. Сначала я сообщаю утилите apt о сайте Cloudera: создаю новый файл /etc/apt/sources.list.d/cloudera.list и добавляю в него следующий текст:

Если вы работаете с Jaunty или другим дистрибутивом операционной системы, просто замените слово intrepid на имя вашего дистрибутива (на данный момент поддерживаются Hardy, Intrepid, Jaunty, Karmic и Lenny).

Далее, я получаю ключ apt-key от Cloudera для проверки подлинности загруженного пакета:

После этого я устанавливаю Hadoop, используя псевдораспределенную конфигурацию (все демоны Hadoop запускаются на одном узле):

Обратите внимание на то, что эта конфигурация занимает на жестком диске около 23 МБ (не считая других пакетов, которые могут быть установлены утилитой apt в процессе загрузки). Этот вариант установки идеально подходит для тех случаев, когда вы хотите познакомиться с Hadoop с целью изучения его элементов и интерфейсов.

Наконец, я настраиваю беспарольный SSH. Если при использовании команды ssh localhost система запрашивает у вас пароль, выполните следующие шаги (листинг 1). Поскольку эти действия затрагивают некоторые аспекты безопасности, я предполагаю, что мой компьютер будет полностью выделен под работу Hadoop.

Листинг 1. Настройка беспарольного SSH

Напоследок необходимо убедиться в том, что на вашем компьютере достаточно свободного дискового пространства для размещения узла DataNode (узел этого типа является кэшем). Если места на диске окажется недостаточно, система может начать вести себя странным образом (например, выдавать ошибки с сообщениями о невозможности репликации на этот узел).

Запуск Hadoop

Теперь все готово к запуску Hadoop – нужно лишь запустить каждый из его демонов. Но сначала отформатируем файловую систему Hadoop File System (HDFS) с помощью команды hadoop . У этой команды существует несколько предназначений, и некоторые из них мы вскоре рассмотрим.

Сначала обратимся к узлу NameNode с запросом на форматирование файловой системы DFS. Это действие является частью установки, но о нем полезно знать на тот случай, если вам когда-нибудь потребуется создать чистую файловую систему.

После подтверждения запроса файловая система будет отформатирована, а также будет возвращена некоторая информация. Далее запустим демоны Hadoop. В данной псевдораспределенной конфигурации запускается пять демонов Hadoop: namenode, secondarynamenode, datanode, jobtracker и tasktracker. При запуске каждого демона вы увидите несколько строк текста (указывающих, где будут храниться log-файлы). Каждый запускаемый демон будет работать в фоновом режиме. На рисунке 1 показано, как выглядит узел в псевдораспределенной конфигурации после запуска Hadoop.

Рисунок 1. Псевдораспределенная конфигурация Hadoop


Hadoop имеет несколько вспомогательных инструментов для упрощения запуска. Эти инструменты разделены на две категории – запуск (например, start-dfs ) и останов ( stop-dfs ). Следующий небольшой сценарий показывает, как запустить узел Hadoop.

Для проверки того, что все демоны запущены, можно использовать команду jps (эта команда является аналогом утилиты ps для процессов JVM), которая должна вывести список из пяти демонов и соответствующие им идентификаторы процессов.

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

Демон datanode управляет хранилищем, подключенным к отдельному узлу кластера (в кластере может быть несколько узлов). На каждом узле, который хранит данные, всегда будет запущен демон datanode.

Наконец, в каждом кластере будет запущен один экземпляр демона jobtracker, который отвечает за распределение задач между узлами datanode, и по одному экземпляру демона tasktracker для каждого узла datanode, который непосредственно выполняет всю работу. Демоны jobtracker и tasktracker работают по схеме «главный–подчиненный»: jobtracker распределяет задачи между узлами datanode, а tasktracker выполняет полученные задания. Кроме того, jobtracker проверяет результаты выполнения назначенных заданий, и если узел datanode по какой-то причине выходит из строя, незавершенное задание переназначается на другой узел.

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

Проверка файловой системы HDFS

Чтобы убедиться в том, что Hadoop (по крайней мере, узел namenode) работает без ошибок, можно выполнить ряд тестов. Зная о том, что все процессы доступны, вы можете использовать команду hadoop для проверки локального пространства имен (листинг 2).

Листинг 2. Проверка доступа к файловой системе HDFS

Из вывода команды видно, что узел namenode поднят и может обслуживать локальное пространство имен. Обратите внимание на то, что для проверки файловой системы вы используете утилиту, которая называется hadoop-0.20 . С помощью этой утилиты осуществляется взаимодействие с кластером Hadoop – начиная от проверки файловой системы и заканчивая выполняющимися в кластере заданиями. Обратите внимание на структуру команд: после ввода имени утилиты hadoop-0.20 указывается команда (в данном случае общая оболочка файловой системы) и необходимые параметры (в данном случае с помощью параметра ls был запрошен список файлов). Поскольку утилита hadoop-0.20 является одним из основных интерфейсов взаимодействия с кластером Hadoop, в этой статье вы будете часто использовать ее. В листинге 3 перечислены некоторые дополнительные операции с файловой системой, с помощью которых вы можете глубже изучить этот интерфейс (создание новой директории с именем test,, получение списка ее содержимого и удаление этой директории).

Листинг 3. Выполнение действий с файловой системой в Hadoop

Тестирование Hadoop

Теперь, когда вы установили Hadoop и изучили основы работы с файловой системой, пришло время протестировать работу Hadoop в реальном приложении. В этом примере вы увидите, как работает процесс MapReduce с небольшим объемом данных. Названия операций map и reduce заимствованы от названий соответствующих операций в функциональном программировании и предоставляют базовые возможности для прореживания данных (обработки данных с целью уменьшения их объема). Операция map означает процесс разбивки входных данных на более мелкие подмножества с целью их последующей обработки (эти подмножества распределяются между параллельными обработчиками). Операция reduce означает процесс компоновки полученных от обработчиков результатов в единый набор выходных данных. Заметьте, что здесь я не упомянул, что же означает обработка, поскольку фреймворк позволяет определять это вам самим. В канонической форме MapReduce – это подсчет количества слов, встречающихся в наборе документов.

Согласно предыдущим рассуждениям, вам потребуется создать набор входных данных и получить результирующий набор. На первом шаге необходимо создать в файловой системе поддиректорию input, с которой вы будете работать. Для этого выполните следующую команду:

Далее поместите в директорию input какой-нибудь файл. В нашем примере мы будем использовать команду put , которая перемещает файл из локальной файловой системы в файловую систему HDFS (листинг 4). Обратите внимание на формат команды: здесь исходный файл перемещается в директорию HDFS (input). Теперь в файловой системе HDFS у вас появилось два текстовых файла, с которыми можно работать.

Листинг 4. Перемещение файлов в файловую систему HDFS

Вы можете проверить наличие данных файлов с помощью команды ls (листинг 5).

Листинг 5. Проверка наличия файлов в HDFS

Теперь вы можете выполнить над данными операцию MapReduce. Для этого требуется запустить единственную, но длинную команду (листинг 6). Данная команда вызывает на исполнение JAR-файл, который обладает различным функционалом, но в нашем примере просто выполняет подсчет слов (функция wordcount ). Демон jobtracker посылает узлу datanode запрос на выполнение задания MapReduce, в результате чего будет получен объемный вывод (в нашем примере этот объем невелик, поскольку мы обрабатываем всего лишь два файла), который покажет нам ход работы функций map и reduce, а также некоторую полезную статистику операций ввода/вывода как для файловой системы, так и для обработки записей.

Листинг 6. Выполнение задания MapReduce для подсчета слов (wordcount)

После завершения обработки данных можно проверить результаты. Вспомните, что целью задания было подсчитать, сколько раз во входных данных встретилось каждое слово. Результаты помещаются в файл в виде строк, каждая из которых содержит слово и число, показывающее, сколько раз это слово было найдено. После того как вы найдете сгенерированный файл, используйте команду cat в составе утилиты hadoop-0.20 , чтобы вывести результаты на экран (листинг 7).

Цукерберг рекомендует:  Оригинальная форма для сообщения
Листинг 7. Просмотр результатов операции MapReduce для функции wordcount

С помощью утилиты hadoop-0.20 можно также извлечь файл из файловой системы HDFS (листинг 8). Для этого используется команда get (по аналогии с командой put , предназначенной для записи файлов в HDFS). Для команды get вы должны указать имя файла, который необходимо извлечь из системы HDFS (из подкаталога output), а также указать, под каким именем он будет записан в локальную файловую систему (output.txt).

Листинг 8. Извлечение результирующего файла из файловой системы HDFS

Рассмотрим другой пример, в котором используется тот же JAR-файл, но выполняющий уже другую функцию – параллельное выполнение команды grep . Для этого будем использовать уже имеющиеся входные файлы, а директорию output удалим – она будет создана заново в процессе выполнения.

Далее отправим запрос на выполнение задания MapReduce для функции grep . В этом случае grep работает в параллельном режиме (операция map), после чего результаты отдельных процессов собираются в единое целое (операция reduce). В листинге 9 представлен вывод, полученный в результате использования данной модели (для краткости здесь опущена некоторая его часть). Обратите внимание на синтаксис запроса: вы указываете команде grep взять входные данные из директории input и поместить результаты в директорию output. Последний параметр – это строка поиска ( ‘kernel’ ).

Листинг 9. Выполнение задания MapReduce для подсчета количества совпадений при поиске строки (grep)

После завершения задания давайте найдем результирующий файл в директории output и выполним команду cat , чтобы просмотреть его содержимое (листинг 10).

Листинг 10. Просмотр результатов операции MapReduce для функции grep

Web-интерфейсы

Из этого материала вы узнали, как работать с HDFS, но если вы захотите посмотреть статистику работы Hadoop, в этом вам помогут Web-интерфейсы. Вспомните, что в основе кластера Hadoop лежит узел типа NameNode, который управляет файловой системой HDFS. Обратившись по адресу http://localhost:50070, вы можете получить подробную информацию о файловой системе (например, о доступном и используемом дисковом пространстве и доступных узлах типа DataNode), а также о выполняющихся задачах. Обратившись по адресу http://localhost:50030, вы можете детально исследовать работу демона jobtracker (статус заданий). Обратите внимание на то, что в обоих случаях вы указываете адрес localhost, поскольку все демоны запущены на одном хосте.

Что дальше

В этой статье были рассмотрены установка и первоначальная настройка простого (псевдораспределенного) кластера Hadoop (мы использовали дистрибутив Hadoop от компании Cloudera). Я выбрал этот дистрибутив по той причине, что он упрощает процесс установки и настройки Hadoop. Вы можете найти различные дистрибутивы Hadoop (включая исходный код) на сайте apache.org. Более подробная информация содержится в разделе Ресурсы.

Что, если для выполнения ваших задач вам потребуется масштабировать кластер Hadoop, но ваших аппаратных ресурсов окажется недостаточно? Оказывается, популярность Hadoop обусловлена именно тем, что вы можете легко запускать его в инфраструктуре облачных вычислений на арендованных серверах с использованием предварительно собранных виртуальных машин Hadoop. Компания Amazon предоставляет в ваше распоряжение образы Amazon Machine Images (AMIs), а также вычислительные ресурсы облака Amazon Elastic Compute Cloud (Amazon EC2). В дополнение к этому корпорация Microsoft объявила о том, что ее платформа Windows® Azure Services Platform также будет поддерживать Hadoop.

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

Ресурсы для скачивания

Похожие темы

  • Оригинал статьи Distributed data processing with Hadoop, Part 1: Getting started (EN).
  • Даг Каттинг (Doug Cutting) (EN) – бывший сотрудник Yahoo! (теперь работает в Cloudera), разработавший фреймворк Hadoop для поддержки распространения поискового механизма Nutch.

  • Основной сайт Apache Project, посвященный разработкам Hadoop (EN).
  • На сайте компании Cloudera (EN) вы можете найти предварительно собранные пакеты и виртуальные машины Hadoop, упрощающие начало работы.
  • Ознакомьтесь с лицензией (EN), официально делегированной компанией Google проекту Hadoop, благодаря которой вы можете безопасно использовать Hadoop, не беспокоясь о нарушении авторских прав. Компания Google является владельцем патента концепции Hadoop (эффективная, широко масштабируемая обработка данных, фигурирующая в патенте 7,650,331).
  • Прочитайте статьи Распределенные вычисления с помощью Linux и Hadoop (developerWorks, апрель 2009 г.) и Облачные вычисления с помощью Linux и Apache Hadoop (EN) (developerWorks, октябрь 2009), чтобы узнать больше о Hadoop и его архитектуре.
  • MapReduce: упрощенная обработка данных на больших кластерах (EN) – основополагающий документ Google, описывающий этот функциональный стиль программирования.
  • Прочитайте введение в концепцию MapReduce на Wikipedia (EN).
  • Ознакомьтесь со списком команд для утилиты Hadoop (EN) на сайте Apache.
  • Загляните в раздел Hadoop on the horizon (EN) и познакомьтесь с группой IBM jStart (подразделение развивающихся технологий). На странице jStart вы также узнаете о BigSheets (EN) – технологии IBM, предназначенной для расширения интеллектуальных ресурсов предприятия через Web-данные.
  • Компания Cloudera предлагает вам ряд бесплатных (и рабочих!) дистрибутивов Hadoop. Вы можете загрузить дистрибутивы для различных версий Linux, виртуальную машину и даже виртуальную машину для Amazon EC2 (EN).
  • Облако Windows Azure готовится к предоставлению Hadoop в качестве виртуальной машины (EN); Amazon предоставляет образы виртуальных машин Hadoop в рамках своей масштабируемой инфраструктуры Amazon EC2 (EN).
  • Оцените продукты IBM (EN) любым удобным для вас способом: вы можете загружать пробные версии продуктов, работать с ними в онлайновом режиме, использовать их в облачной среде или же потратить несколько часов на изучение SOA Sandbox (EN) и узнать, как можно эффективно применять сервис-ориентированную архитектуру при разработке программного обеспечения.

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

Настройка HADOOP для новичков

Вот уже год занимаюсь исследованием экосистемы (не побоюсь этого слова) HADOOP. Когда накопились определенные знания, решил поделиться ими с миром, так как информации в русском сегменте Интернет не так уж и много.

Итак, HADOOP — это свободно распространяемый фреймворк, разработанный Apache Software Foundation. Представляет собой набор программных средств для распределенного хранения и обработки массивов данных большого объема (BigData). Термин «Большие данные»(BigData) не имеет в данный момент четкого определения, так как для кого-то 10Гб много, а для кого-то и 100 Тб не очень. Но для себя я лично понял, что HADOOP следует применять тогда, когда классические методы обработки информации становятся неприменимы. Например, когда простые запросы к вашей SQL базе данных начинают выполняться часами. Так же HADOOP выигрывает тогда, когда у вас есть много устаревшего железа, а денег на новое и быстрое железо не хватает, да и за сам фреймворк платить не надо.

В естественной среде обитания компоненты HADOOP устанавливаются на ОС семейства Linux с серверным железом, десятками гигабайт оперативной памяти (как минимум) и терабайтными винтами. Такие конфигурации мы рассматривать не будем, так как в этом случае нам нужно много денег и крутой сисадмин. Для того, чтобы понять что такое HADOOP, как он работает и какие его компоненты нам нужны, будет достаточно настольного ПК. Минимальные требования к железу: процессор — 2 ядра по 2Ггц, оперативная память — 8 Гб, жесткий диск на 100 Гб.С точки зрения железа тут наиболее критична оперативная память, так как кластер из трех машин гарантированно сожрет 6Гб оперативки. В статье будет рассмотрен 3-х нодовый кластер (3 ПК) поэтому данные требования для такой конфигурации. Просто если система распределенная, то мне интересно экспериментировать с системой, максимально приближенной к реальности. Если же вам эти параметры по железу недоступны, можно изучать HADOOP и на однонодовом кластере, тут вам понадобиться всего лишь процессор с одним ядром, 4 Гб оперативки и 50 Гб диск.

Операционная система заслуживает отдельного внимания. В нашем примере мы будем разворачивать кластер на виртуальных машинах с ОС Ubuntu 18.04 LTS. Почему так сложно? Да потому что для тех, кто не знаком с Linux, данная ОС будет наиболее приятна на начальном этапе и она встроена в менеджер виртуальных машин Windows 10. В реальных условиях из того, что я видел, большинство кластеров развернуты на CentOS без визуальной оболочки. Так же процесс установки HADOOP был успешно протестирован на Ubuntu 14.04 LTS и 16.04 Server. Навыки работы с командной строкой у вас тоже должны быть, если нет, постараюсь объяснить все доходчиво.

Внимание. Я не хочу никого учить работе в Linux. Сам новичок, если есть что добавить, регистрируйтесь и пишите в комментариях или в группу Вконтакте.

Итак, у вас есть домашний ПК с как минимум 4Гб оперативки, в нашем примере установлена Windows 10. Если у вас другая ОС, тогда необходимо установить менеджер виртуальных машин, например VMWareWorkstation или VirtualBox. Раньше я пользовался именно этими виртуалками, но Windows 10 меня порадовала наличием встроенного менеджера виртуальных машин Hyper-V.

Включение Hyper-V через раздел «Параметры»

1. Щелкните правой кнопкой мыши кнопку Windows и выберите пункт «Приложения и возможности».

2. Выберите программы и компоненты справа в разделе сопутствующие параметры.

3. Выберите пункт Включение или отключение компонентов Windows.

4. Выберите Hyper-V и нажмите кнопку ОК.

Теперь Hyper-V готово к работе. Для его запуска необходимо кликнуть по иконке поиска и набрать «Hyper», после чего появится приложение, смотри рисунок ниже.

Запускаем диспетчер виртуальных машин Hyper-V, после чего видим главное окно, где в правой части можно увидеть вкладку «Быстро создать». Кликаем по ней, появляется окно выбора операционной системы, выбираем Ubuntu 18, как на рисунке ниже. В ходе установки и настройки системы особо обратить внимание на имя пользователя и пароль.

Это самый простой способ создания виртуальной машины, требующий минимума действий пользователя, в дальнейшем научимся клонировать виртуалки.

Однако данный способ создания виртуальных машин оказался не очень практичен. Настроек по умолчанию не хватает для главной машины кластера, а изменить параметры железа оказалось не такой уж и простой задачей.Так попытка увеличить объем жесткого диска привела к потере виртуалки. После этого я решил создавать виртуалки обычным способом: настройка параметров железа с дальнейшей установкой ОС из образа. Образ Ubuntu 18.04 можно найти ЗДЕСЬ.

Для данного типа установки необходимо в правой панели менеджера Hyper-V выбрать опцию Создать -> Виртуальная машина. Далее указать нужные настройки железа и путь к скачанному образу операционной системы.

Итак, на данном этапе мы имеем: виртуальную машину Ubuntu 18 c визуальным интерфейсом (для облегчения работы для новичков), настроенный сетевой коммутатор, благодаря которому наша виртуалка подключена к отдельной подсети с динамической адресацией и DNS. Также Интернет уже доступен на виртуальной машине. Для начала нужно освоится в ОС Линукс и его визуальным интерфейсом. Для начала нам понадобится встроенный браузер Firefox и менеджер файлов. Следующим этапом будет работа с командной строкой, для вызова которой нажать комбинацию клавиш + +t. В результате откроется терминал (окно командной строки) в домашнем каталоге текущего пользователя. На рисунке ниже пользователь v1 имя компьютера (hostname) — Master. Каталог, в котором мы сейчас находимся: /home/v1.

Теперь все готово для настройки операционной системы Ubuntu.

Настройка операционной системы Ubuntu 18

Для начала нужно установить Java, так как HADOOP является фреймворком, написанном на Яве. Поддерживаются версии Java от 5-й и выше, но как показала практика, наиболее стабильно HADOOP работает с 8-й и 9-й версией.Я предпочел установить версию 8, так как с последней 11-й было много глюков.

Для установки Java (jdk и jre) в терминале выполнить следующие команды:

sudo apt install openjdk-8-jdk-headless

sudo apt install openjdk-8-jre-headless

Правильность установки можно проверить с помощью команды java -version (рисунок ниже)


Следует отметить, что возможна установка нескольких версий Java, для выбора активной версии нужно воспользоваться командой sudo update-alternatives —config java

Создание пользователя системы для работы с HADOOP

Тут все очень просто, выполним следующие команды:

sudo addgroup hadoop

sudo adduser —ingroup hadoop hduser

Создан пользователь hduser в группе hadoop. При создании пользователя важно запомнить пароль, остальные настройки не важны.

Для входа в систему под новым пользователем необходимо ввести команду sudo su hduser, для входа нужно ввести пароль для текущей учетной записи:

Теперь пользователю hduser необходимо добавить права для выполнения команд типа от рута (sudo).

Для этого необходимо сменить текущего пользователя hduser на созданного при установке системы v1 c помощью команды: su v1 и ввести пароль этого пользователя.

После этого необходимо добавить пользователя hduser в файл /etc/sudoers для чего открыть данный файл в редакторе c помощью команды:

sudo gedit hadoop /etc/sudoers

В текстовом редакторе сразу после пользователя root добавить созданного пользователя hduser, как показано на рисунке ниже.

Далее необходимо установить и настроить SSH. Установка SSH-сервера:

sudo apt-get install openssh-server

Далее зайти под пользователем hduser и сгенерировать SSH-ключи.

ssh-keygen -t rsa -P «»

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Установка и настройка HADOOP.

Качаем архив HADOOP ОТСЮДА, я выбрал версию 2.9.1.

Загрузить архив можно либо через команду wget в консоли, но у нас есть интерфейс и браузер. Поэтому упрощаем себе жизнь и качаем в браузере. Архив загружается в в каталог Downloads текущего пользователя системы. Тут же можно и разархивировать скачанный файл.

Для распаковки архива в командной строке нужно выполнить команду sudo tar -xzvf hadoop-2.9.1.tar.gz

Далее необходимо переместить распакованный каталог в рабочий каталог с помощью команды mv, в нашем случае это каталог /usr/local. Следует отметить, что команда mv создаёт несуществующие каталоги, в нашем примере это hadoop/hadoop-2.9.1 :

sudo mv hadoop-2.9.1 /usr/local/hadoop/hadoop-2.9.1

Создадим рабочие каталоги для HDFS (NameNode и DataNode) и назначим владельца каталога hadoop (пользователь hduser):

sudo mkdir -p /usr/local/hadoop/hadoop_tmp/hdfs/namenode

sudo mkdir -p /usr/local/hadoop/hadoop_tmp/hdfs/datanode

sudo chown hduser:hadoop -R /usr/local/hadoop/

Теперь необходимо настроить переменные окружения:

sudo gedit .bashrc

В текстовом редакторе в конец файла вставить следующие строки:

Настраиваем HADOOP. Необходимо отметить, что все конфигурационные файлы находятся по следующему пути (в нашей конфигурации): /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/

Добавить переменную JAVA_HOME в файл /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/hadoop-env.sh

sudo gedit /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/hadoop-env.sh

Настройка файла core-site.xml. Для этого открыть файл в редакторе с помощью команды

sudo gedit /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/core-site.xml

И прописать следующие строки:

Здесь мы указали путь к основной машине (NameNode) файловой системы HDFS, где localhost только для локальной установки HADOOP (в распределенной версии тут либо IP-адрес, либо DNS-имя); 9000 — порт, может быть иным, но лучше не менять.

Настройка файла hdfs-site.xml. Для этого открыть файл в редакторе с помощью команды

sudo gedit /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/hdfs-site.xml


Параметры: dfs.replication — количество реплик файлов в HDFS, NameNode — это своеобразная таблица дескрипторов в HDFS (данные о частях и репликах), DataNode — это сами данные.

Настройка yarn-site.xml. Для этого открыть файл в редакторе с помощью команды

sudo gedit /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/yarn-site.xml

Настройка mapred-site.xml. Файл изначально не существует, есть шаблон, который нужно скопировать командой:

cp /usr/local/hadoop//hadoop-2.9.1/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/mapred-site.xml

Открыть и отредактировать созданный файл

sudo gedit /usr/local/hadoop/hadoop-2.9.1/etc/hadoop/mapred-site.xml

На этом настройка закончена, перезагружаем систему и форматируем HDFS от пользователя hduser с помощью команды:

hdfs namenode -format

В ходе форматирования в терминале будут отображены логи:

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

Теперь осталось запустить HADOOP!

Запуск HADOOP заключается в запуске менеджеров HDFS и YARN. Для этого необходимо запустить два скрипта.

Для HDFS — start-dfs.sh

Для YARN — start-yarn.sh

Успешность запуска всех демонов HADOOP можно проверить с помощью команды jps.

Если все настроено правильно, должно быть запущено 5 процессов HADOOP: NodeManager, NameNode, DataNode, ResourceManager, SecondaryNameNode.

Для облегчения процедуры запуска HADOOP можно создать простой скриптик, для этого перейдем в домашний каталог пользователя hduser с помощью команды cd.

Создадим файл hdp.sh и отредактируем его с помощью команды:

sudo gedit hdp.sh

Добавим в редакторе следующие строки:

Сохраняем и выходим. Теперь нужно дать права на исполнения для файла hdp.sh. Это делается командой:

sudo chmod 777 hdp.sh

Запускаем наш скрипт:

Вот мы и настроили однонодовый кластер HADOOP. В следующей статье будет представлена настройка многонодового кластера.

Комментарии

Комментировать могуть только зарегистрированные пользователи

Hadoop: введение в системы больших данных

Apache Hadoop – один из важнейших открытых инструментов для хранения и обработки большого количества цифровых данных, накопленных с ростом World Wide Web. Он развился из открытого проекта под названием Nutch, который предназначался для поиска в Интернете. Создатели Nutch были в большой степени подвержены влиянию Google. В конечном итоге функции хранения и обработки были выделены в проект Hadoop, а Nutch разрабатывается как инструмент поиска.

Цукерберг рекомендует:  Сайт - Создаю один сайт в котором будут все о Android

Данная статья расскажет, что такое системы больших данных.

Системы данных

Данные существуют повсюду: на клочках бумаги, в книгах, на фотографиях, в мультимедийных файлах, логах сервера и на веб-сайтах. Когда эти данные собираются целенаправленно, они входят в систему данных.

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

Этот проект хорошо иллюстрирует систему данных:

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

  • В результате отображаются обработанные данные (таблицы, диаграммы, графики).

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

Компании поисковых систем столкнулись с этой конкретной проблемой, поскольку количество веб-контента стало стремительно расти в эпоху Dot-com. В 2003 году Google опубликовал статью The Google File System , где описывается, как их закрытое программное обеспечение обрабатывало огромное количество данных поисковой системы. В 2004 году Google публикует MapReduce: Simplified Data Processing on Large Clusters, где подробно описывается, как кластеры упрощают обработку таких больших объемов данных. Эти две статьи сильно повлияли на архитектуру Hadoop.

Чем отличаются большие данные?

Статьи Google и реализация этих идей в Hadoop основаны на четырех изменениях в восприятии данных, которые необходимы для учета объема данных:

  1. Системы больших данных должны поддерживать распределение данных. Распределенное хранение набора данных на разных машинах стало неизбежным.
  2. Когда кластеры стали основой хранилища, программное обеспечение должно было научиться учитывать аппаратный сбой, поскольку это неизбежно, особенно если речь идет о сотнях или тысячах компьютеров в кластере.
  3. Поскольку на машинах будут случаться сбои, им нужен новый способ общения друг с другом. В повседневных вычислениях данных машины обычно определяются IP-адресом или именем хоста. Это явное сообщение машин пришлось заменить неявным соединением: при этом одна машина сообщает какой-то другой машине, что она должна обрабатывать некоторые конкретные данные. В противном случае программисты столкнулись бы с проблемой аутентификации – такой же большой, как и сама проблема обработки данных.
  4. Компьютеру нужно будет перейти к данным и обработать их на распределенных машинах, а не перемещать огромное количество данных по сети.

Выпущенная в 2007 году версия 1.0 основанного на Java фреймвока Hadoop стала первым открытым проектом, который учитывал все эти изменения. Его первая версия состоит из двух уровней:

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

HDFS 1.0

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

Как работает HDFS 1.0?

Для надежного хранения очень больших файлов на нескольких компьютерах HDFS использует блочную репликацию на основе двух компонентов программного обеспечения: это сервер NameNode, который управляет пространством имен файловой системы и доступом клиентов, а также DataNodes, ответственный за выполнение запросов на чтение и запись, создание блоков, удаление и репликацию. Базовое понимание шаблона репликации полезно для разработчиков и администраторов кластеров, поскольку дисбаланс в распределении данных может повлиять на производительность кластера и потребовать дополнительной настройки.

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

NameNode принимает все решения о репликации блоков на основе алгоритма пульсации и отчетов, которые он получает от каждого DataNode в кластере. Алгоритм пульсации позволяет убедиться, что DataNode работает, а отчет о блоках предоставляет список всех блоков в DataNode.

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

Ограничения HDFS 1.0

HDFS 1.0 сделал Hadoop лидером среди открытых инструментов для хранения больших данных. Отчасти этот успех был вызван решениями в архитектуре, которые упростили распределенное хранение. Но при этом ограничения оставались. К основным ограничениям версии 1.0 относятся:

  • Отсутствие контроля над распределением блоков. Шаблон репликации блоков HDFS является основой его высокой доступности. С одной стороны, он очень эффективный и устраняет необходимость заботиться об уровне хранения блоков. С другой стороны, поскольку он не учитывает использование пространства или ситуацию нод в режиме реального времени, администраторам кластеров, возможно, потребуется настроить балансировку для перераспределения блоков.
  • NameNode – единая точка отказа. Если процесс или машина NameNode не работают, весь кластер будет недоступен до тех пор, пока сервер NameNode не будет перезапущен. После перезапуска NameNode должен собрать данные о пульсации от каждой ноды в кластере, что продлевает время простоя, особенно в больших кластерах.

Несмотря на эти ограничения, HDFS сделал большой вклад в работу с большими данными.

MapReduce 1.0

Второй уровень Hadoop – MapReduce – отвечает за пакетную обработку данных, хранящихся на HDFS. Внедрение в Hadoop модели Google MapReduce позволяет разработчикам использовать ресурсы HDFS без параллельных и распределенных систем.

Как работает MapReduce 1.0

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

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

Давайте рассмотрим, как это работает на таком примере:

Если бы это сопоставление выполнялось последовательно над большим набором данных, это потребовало бы слишком много времени, но благодаря параллельности процессов и сокращению эту процедуру можно масштабировать для больших наборов данных.

Компоненты более высокого уровня могут подключаться к MapReduce для предоставления дополнительных функций. Например, Apache Pig предоставляет разработчикам язык для написания программ анализа данных, абстрагируя идиомы Java MapReduce на более высокий уровень (аналогично тому, что делает SQL для реляционных баз данных). Apache Hive поддерживает анализ данных и отчетность с помощью SQL-подобного интерфейса для HDFS. Он абстрагирует запросы MapReduce Java API для обеспечения функциональности запросов высокого уровня. Для Hadoop 1.x доступно множество дополнительных компонентов, но экосистема MapReduce также имеет некоторые ограничения.

Ограничения MapReduce 1

  • Зависимость между MapReduce и HDFS. В реализации 1.x обязанности уровня MapReduce выходят за рамки обработки данных (включая управление ресурсами кластера) и тесно связаны с HDFS. Это означает, что разработчикам аддонов для 1.x приходится писать многопроходные программы MapReduce, независимо от того, подходит ли это для задачи или нет, потому что MapReduce является единственным способом доступа к файловой системе.
  • Статические слоты для анализа данных. Сопоставление и сокращение происходит на DataNodes, но на каждом DataNode доступно только ограниченное статическое количество одноцелевых слотов. Слоты мапперов могут только сопоставлять, а слоты сокращения – только сокращать. Число слотов устанавливается в конфигурации без возможности динамической настройки, и поэтому могут возникнуть ситуации, когда рабочая нагрузка кластера не соответствует конфигурации. Такое распределение слотов также затрудняет планирование других приложений.
  • JobTracker – единая точка отказа. Приложения Hadoop отправляют задачи MapReduce в JobTracker, который, в свою очередь, распределяет эти задачи на определенные ноды кластера либо по доступным слотам, либо по географической близости. TaskTracker уведомляет JobTracker, если задача выполнена с ошибкой. JobTracker может повторно отправить задачу, пометить запись, которая будет исключена из будущей обработки, или поместить в черный список ненадежный TaskTracker. Но в случае сбоя самого JobTracker все задачи MapReduce будут остановлены.

Улучшения в Hadoop 2.x

Ветка Hadoop 2.х, выпущенная в декабре 2011 года, представила четыре основных усовершенствования и исправила ключевые ограничения версии 1. Hadoop 2.0 устраняет ограничение производительности и единую точку отказа NameNode. Кроме того, он отделяет MapReduce от HDFS с введением YARN (Yet Another Resource Negotiator), открыв экосистему дополнительных продуктов и разрешив моделям обработки взаимодействовать с HDFS и обходить слой MapReduce.

1: Федерация HDFS

Федерация HDFS вводит четкое разделение пространства имен и хранилища, что делает возможным наличие нескольких пространств имен в кластере. Благодаря этому появляются такие улучшения:

  • Масштабирование пространства имен. Возможность добавить больше имен в кластер обеспечивает горизонтальное масштабирование. Большим кластерам или кластерам со множеством небольших файлов может быть полезно добавить дополнительные NameNodes.
  • Производительность. Наличие нескольких NameNode снимает ограничение на операции файловой системы.
  • Изоляция между пространствами имен. В многопользовательских средах с одним NameNode один пользователь мог влиять на каждого другого пользователя в системе. В федерации стало возможным изолировать жителей системы.

Как работает федерация HDFS

Федерация управляет пространством имен файловой системы. NameNodes работают независимо и не координируются друг с другом. DataNodes регистрируются в кластере с каждым NameNode, отправляют пульс и отчеты блоков и обрабатывают входящие команды из NameNode.

Блоки распространяются по всему хранилищу с той же случайной репликацией, что и в Hadoop 1.x. Все блоки, принадлежащие одному пространству имен, называются пулом блоков. Такие пулы управляются независимо, позволяя пространству имен генерировать идентификаторы блоков для новых блоков без согласования с другими пространствами имен. Комбинация пространства имен и пула блоков называется томом пространства имен; том формирует автономный блок, так что когда один из NameNode удаляется, его пул блоков удаляется вместе с ним.

Помимо улучшенной масштабируемости, производительности и изоляции, Hadoop 2.0 также обеспечил высокую доступность NameNodes.

2: Высокая доступность NameNode

Если в предыдущих версиях NameNode прекращал работу, весь кластер был недоступен, пока NameNode не перезапустится или не появится на новом компьютере. Модернизация программного или аппаратного обеспечения NameNode также создавала окна простоя. Чтобы предотвратить это, Hadoop 2.0 реализовал конфигурацию active/passive, чтобы обеспечить быстрый переход на другой ресурс.

Как работает высокая доступность NameNode

Две отдельные машины настроены как NameNodes, одна из них активна, другая находится в режиме ожидания. Они совместно используют каталог на общем устройстве хранения. Когда активная нода вносит изменения, она записывает его в лог, хранящийся в этом общем каталоге. Резервная нода постоянно наблюдает за каталогом и когда происходит редактирование, она применяет эти изменения к собственному пространству имен. Если активная нода выходит из строя, резервная нода читает непримененные изменения из общего хранилища, а затем переходит в режим активной ноды.

3: YARN

Hadoop 2.0 отделяет MapReduce от HDFS. Управление рабочими нагрузками, многоуровневым обслуживанием, безопасностью и функциями высокой доступности было выделено в YARN (Yet Another Resource Negotiator). YARN – это, по сути, крупномасштабная распределенная операционная система для приложений больших данных, которая позволяет использовать Hadoop как для MapReduce, так и для других приложений, которые не могут дождаться завершения пакетной обработки. YARN устранил необходимость работы через инфраструктуру MapReduce с высокой задержкой ввода-вывода, что позволяет использовать новые модели обработки HDFS.

У пользователей Hadoop 2.x есть доступ к таким моделям обработки.

  • Пакетная обработка. Системы пакетной обработки не являются интерактивными и имеют доступ ко всем данным до начала обработки. Пакетная обработка обычно выполняется с высокой задержкой, причем скорость выполнения заданий пакетной обработки больших данных обычно измеряется в минутах или более. Эта модель подходит для индексирования данных, поиска в Интернете и обработки данных. Программы, которые могут сделать это для Hadoop: MapReduce, Tez, Spark, Hive и Flink.
  • Интерактивная обработка. Системы интерактивной обработки необходимы, когда вопросы неизвестны заранее. Вместо этого пользователь интерпретирует ответ на запрос, а затем формулирует новый вопрос. Для поддержки такого рода обработки ответ нужно вернуть гораздо быстрее, чем при обычной работе MapReduce. Эта модель подходит для просмотра данных. Программы, которые могут сделать это для Hadoop: Impala, Drill, HAWQ, Presto, Vortex, Vertica SQL, Tez.
  • Обработка потоков. Системы потоковой обработки занимают большие объемы дискретных точек данных и выполняют непрерывный запрос для получения результатов, близких к реальному времени, по мере поступления новых данных в систему. Эта модель подходит, если у вас уже есть цифровые данные, которые постоянно генерируются (например, это мониторинг общественного настроя по проблеме, событию или продукту в социальных сетях, отслеживание новых тенденций или мониторинг логов сервера). Программы, которые могут сделать это для Hadoop: Spark Stream, Storm.
  • Обработка графов. Графовые алгоритмы обычно описывают связи между вершинами, которые выражаются ребрами. При передаче через MapReduce 1.x эта модель требовала много лишних накладных расходов. Эта модель подходит для отображения нелинейных отношений между вещами: это друзья в Facebook, подписчики в Twitter, распределенные графовые базы данных, которые лежат в основе социальных сетей. Программы, которые могут сделать это для Hadoop: Apache Giraph, Apache Spark’s GraphX, Hama, Titan.

Это лишь несколько альтернативных моделей и инструментов обработки. Подробное руководство по экосистеме Hadoop можно найти здесь.

4: Высокая доступность ResourceManager

В первом релизе YARN было свое узкое место: ResourceManager. Единственный JobTracker в MapReduce 1.x обрабатывал управление ресурсами, планирование задач и мониторинг работы. Ранние релизы YARN улучшили это, разделив обязанности между глобальным ResourceManager и ApplicationMaster для каждого приложения. ResourceManager отслеживал ресурсы кластера и планировал приложения, такие как MapReduce Jobs, но был единственной точкой отказа до версии 2.4, в которой была представлена архитектура Active/Standby.

В Hadoop 2.4 единый ResourceManager был заменен одним активным ResourceManager и одним или несколькими резервными. В случае сбоя активного ResourceManager администраторы могут вручную активировать один из менеджеров. Чтобы обеспечить автоматический переход на другой ресурс, можно добавить в свой стек Apache Zookeeper. Помимо прочих обязанностей по координации задач, Zookeeper может отслеживать состояние нод YARN и в случае сбоя автоматически запускать переход в режим ожидания.

Hadoop. Вводная лекция

Этот тренинг дает представление об основах Apache™ Hadoop® и методах разработки приложений, обрабатывающих данные, на его основе. Участники познакомятся с HDFS — стандартом де факто для долговременного надежного хранения больших объемов данных, фреймворком MapReduce, автоматически управляющим параллельным выполнением приложений на кластере, и сопутствующими проектами, составляющими экосистему Hadoop®.

Цели:
— понимать ключевые концепции и архитектуру Hadoop®;
— уметь записывать и читать данные в/из HDFS;
— разрабатывать программы для классического MapReduce и для YARN;
— работать с данными в HDFS из ;
— получить представление об экосистеме, сложившейся вокруг Hadoop® и ее ключевых компонентах.

Разбираемые темы:
— Основные концепции Hadoop®;
— Установка и конфигурирование: локально и в облаке;
— HDFS: Архитектура, репликация, чтение и запись данных;
— Команды HDFS;
— Структура классической MapReduce-программы;
— Форматы данных для MapReduce;
— Архитектура YARN;
— Выполнение работ в классическом MapReduce и в YARN;
— Распределенный кеш и счетчики;
— Hadoop Streaming;
— Экосистема и вендоры Hadoop®;
— Введение в Pig™;
— Введение в Hive;
— Введение в Sqoop;
— Введение в Flume;
— Введение в Spark™;
— Введение в Mahout™.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих