Skip to content
/ hadoop Public

GB: BigData. Введение в экосистему Hadoop

Notifications You must be signed in to change notification settings

bostspb/hadoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GB: BigData. Введение в экосистему Hadoop

Geek University Data Engineering

Hadoop HDFS WebHDFS MapReduce YARN Hive Hue SQOOP Flume HBase Cassandra
PARQUET ORC AVRO SequenceFile
Python:snakebite Python:hdfs Python:hdfs3 (libhdfs3)

Урок 1. Введение в Hadoop

  • Hadoop — не база данных
  • Не заточен под OLTP, заточен под OLAP - https://habr.com/ru/post/442754/
  • Нет ACID транзакций (справка по уровням изоляции - https://habr.com/ru/post/469415/)
  • В основном раскрывает себя для data analyst, data engineer, data scientist
  • Можно начинать после 50Тб или если данные не реляционны
  • Наименьшая стоимость за единицу хранения около $10-$20K за узел (32thread/256Gb/45Tb)
  • Стоит начинать от 10 узлов

В ходе выполнения домашнего задания зашел по ssh на предоставленный кластер с Hadoop и выполнил команду hdfs dfs -ls. Также ознакомился с интерфейсом Cloudera Manager.

Урок 2. HDFS. Архитектура

  • Разобрали особенности хранения данных в файловой системе HDFS.
  • Познакомились с основными консольными командами HDFS (FS shell, HDFS Commands)

Домашнее задание:

  1. Опробовать консольные утилиты для работы с кластером
    [] Создать/скопировать/удалить папку
    [] Положить в HDFS любой файл
    [] Скопировать/удалить этот файл
    [] Просмотреть размер любой папки
    [] Посмотреть как файл хранится на файловой системе (см. команду fsck)
    [] Установить нестандартный фактор репликации (см. команду setrep)
    Решение

  2. *Опробовать доступ для работы с кластером
    [] Используя утилиту CURL - Решение
    [] Используя python3 - Решение
    [] Используя libhdfs3 - Решение
    [] Используя snakebite - Решение

Урок 3. MapReduce & YARN

Выполнение задач

  • Application приложение, которое выполняется в Yarn
  • Container единица выделения ресурсов кластера

Кластер

  • Resource manager Координатор ресурсов кластера. Учитывает только CPU и память
  • Node Manager Координатор ресурсов одного узла кластера
  • ApplicationMaster Представитель приложения

https://habr.com/ru/company/dca/blog/267361/
https://habr.com/ru/company/dca/blog/268277/
https://habr.com/ru/post/270453/

Домашнее задание:

  1. Запустить один-два примера
    Опробовать запуски map-reduce задач для кластера используя hadoop-mapreduce-examples.jar. Чтобы увидеть полный список нужно выполнить yarn jar $YARN_EXAMPLES/hadoop-mapreduce-examples.jar без параметров.

  2. Изучить интерфейс Resource Manager
    Выполнить любую задачу включенную в этот JAR
    Найти свою задачи в интерфейсе Cloudera Manager
    Пример:
    YARN_EXAMPLES=/opt/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/lib/hadoop-mapreduce
    yarn jar $YARN_EXAMPLES/hadoop-mapreduce-examples.jar pi 32 20000

  3. Написать MapReduce-задачу WordCount
    Опираясь на лекцию написать WordCount, используя Hadoop Streaming или используя java.

  4. Ответить на вопросы *Что такое YARN?
    *Почему задачи на YARN нестабильны?
    Почему Map Reduce долго выполняется?
    Почему Map Reduce не выполняется?
    *Где хранится результат выполнения Map Reduce?

5*. Написать join на map-reduce

Решение

Урок 4. Apache Hive

  1. Скачать любой датасет из списка ниже с сайта Kaggle.com (достаточно большой)
  2. Загрузить этот датасет в HDFS в свою домашнюю папку
  3. Создать собственную базу данных в HIVE
  4. Создать таблицы внутри базы данных с использованием всех загруженных файлов. Один файл – одна таблица.
  5. Сделать любой отчет по загруженным данным используя групповые и агрегатные функции.
  6. Сделать любой отчет по загруженным данным используя JOIN.

Решение

Урок 5. Форматы хранения

  1. Создать таблицы в форматах PARQUET / ORC / AVRO c компрессией и без оной.
  2. Заполнить данными из большой таблицы hive_db.citation_data
  3. Посмотреть на получившийся размер данных
  4. Посчитать count некоторых колонок в разных форматах хранения.
  5. Посчитать агрегаты по одной и нескольким колонкам в разных форматах.
  6. Сделать выводы о эффективности хранения и компресии.

Решение

Урок 6. Загрузка данных. SQOOP. Flume.

  1. Создать отдельную БД в Hive
  2. Посмотреть при помощи SQOOP содержимое БД в PostgreSQL (список таблиц)
  3. Импортировать в нее три любые таблицы из базы pg_db в PostgreSQL используя SQOOP.
  4. Найдите папки на файловой системе куда были сохранены данные. Посмотрите их размер.
  5. Сделайте несколько произвольных запросов к этим таблицам.
  6. Flume: Придумать свой скрипт, который генерит выходные данные.
  7. Flume: Запустить свой Flume, прочитать свои данные в Hive

Решение

Урок 7. Виды баз данных. HBase, Cassandra

  • Подключиться к HBase и Cassandra.
  • Создать там таблицы в консоли, вставить записи.

Решение

About

GB: BigData. Введение в экосистему Hadoop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published