Лекция 10. Обзор стека Hadoop. Pig_ Hive_ HBase (2015 Лекции)
Описание файла
Файл "Лекция 10. Обзор стека Hadoop. Pig_ Hive_ HBase" внутри архива находится в папке "2015 Лекции". PDF-файл из архива "2015 Лекции", который расположен в категории "". Всё это находится в предмете "(смрхиод) современные методы распределенного хранения и обработки данных" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Обзор стека Hadoop.Pig, Hive, HBasePigPig – это платформа, предназначенная для анализа больших наборов данных исостоящая из языка высокого уровня для написания программ анализа данных иинфраструктуры для запуска этих программ. Язык характеризуется относительнопростым синтаксисом. Написанные сценарии скрыто преобразуются в задачиMapReduce, которые исполняются на кластере Hadoop. Пользователь можетдобавлять свои собственные функции.http://pig.apache.org/Области применения- Research (исследование данных)- Data mining (построение моделей для дальнейшегоиспользования)- Reporting (построение отчетов)Возможности Pig-Data Types (можно работать с различными типами данных)Filter (различная фильтрация)Group By (группировка по ключу)Join Datasets (объединение по ключу и т.д.)Sort Datasets (сортировка по различным параметрам)Foreach (выполняет итерации по записям массива и преобразование данных)Load (загружает данные из файловой системы)Order (сортирует массив по одному или нескольким полям)Split (разделяет массив на два или более массива)Операторы диагностики- Describe (выводит схему массива (отношения) на экран)- Dump (выводит содержимое массива (отношения) на экран)- Explain (показывает планы исполнения Map Reduce)Схема отношения – последовательность пар “название поля: тип”Pig.
Пример (1)messages = LOAD 'messages';warns = FILTER messages BY $0 MATCHES '.*WARN+.*';STORE warns INTO 'warnings';- Загрузка данных может производиться как из локальногофайла, так и из HDFS.- Результат работы любого оператора – это отношение.Pig. Пример (2)messages = LOAD 'messages';Считываем тестовый набор данных (log-файл, содержащий сообщения) в массив, представляющий собойнабор записей.warns = FILTER messages BY $0 MATCHES '.*WARN+.*';Данные фильтруются (каждая запись состоит из одного столбца, идентифицируемого как $0 или поле 1) спомощью регулярного выражения, которое ищет последовательность символов WARNSTORE warns INTO 'warnings';Сохраняем полученный массив (который теперь содержит только записи, содержащие слово WARN) в новомфайле с названием warnings в файловой системе хоста.Режимы запускаPig может запускаться в следующих режимах:- Локально в интерактивном режиме- На кластере в интерактивном режиме- В виде скриптаВ локальном режиме код для Map Reduce не генерируется!Pig LatinPig Latin – относительно простой язык, выполняющий операторы.
Оператор –это процедура, принимающая входные данные (например, массив, состоящий изнабора записей) и формирующая на выходе другой массив. Массив – это структура,подобная таблице реляционной базы данных, в которой записи аналогичны строкамтаблицы и состоят из полей.Компилятор Pig преобразует код Pig Latin в Map Reduce.-Поддержка богатого набора типов данныхПоддержка SchemaОсновы Pig Latin (1)Скалярные типы данных: int, long, chararray, bytearray,double, float.Отношение – relation (outer bag)Bag – коллекция tuples (заключается в фигурные скобки)Tuple – упорядоченный набор полей, заключенный в круглыескобки (кортеж)Поле – единица данныхОсновы Pig Latin (2)Базовые операцииФункции, встроенные в Pig Latin-AVGCONCATCOUNTDIFFMAXMINSIZESUMTOKENIZEIsEmptyПарсинг- Проверка типов- Проверка ссылок- Генерация кода-Независимость от платформы, на которой выполняется программаПока не встретятся DUMP и STORE, никакие действия не будут выполняться(но будут проверяться и анализироваться)DUMP (вывод результата на экран)STORE (сохранение результата)Load-TextLoader() – загружает данные в текстовом формате, каждая строка – tupleJsonLoader() – загружает данные в JSON формате, каждая строка – tuplePigStorage() – загружает данные из текстового файла с разделителемJsonStorage() – загружает данные из JSON файла и сохраняет их в данном форматеA = load ‘/datadir/datafile’ using PigStorage(‘\t’);A = load ‘/datadir/datafile’ using PigStorage(‘,’) as (f1:int, f2:chararray, f3:float);A = load ‘/datadir/’ using PigStorage(‘,’) as (f1:int, f2:chararray, f3:float);Все имена, кроме ключевых слов, регистро-зависимы.По умолчанию поля загружаются с типом bytearray (бинарная строка).Если у полей нет названия, то к ним можно обращаться через $0, $1 и т.д.Word Count with PigA = load './input.txt';B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;C = group B by word;D = foreach C generate COUNT(B), group;store D into './wordcount';Запуск скриптовHiveHive – это надстройка над Hadoop для того, чтобы облегчить выполнение такихзадач, как суммирование данных, непрограммируемые запросы и анализ большихнаборов данных:- Hive может быть использован теми, кто знает язык SQL.- Hive создает задания MapReduce, которые исполняются на кластере Hadoop.- Определения таблиц в Hive надстраиваются над данными в HDFS.http://hive.apache.org/Особенности HIVEHive не следует использовать для небольших наборов данных, т.к.
даже для ихобработки запрос может занять несколько минут.Hive позволяет использовать различные форматы Hadoop-данных.Hive хранит метаинформацию в реляционной БД.Физически таблицы хранятся в подкаталогах каталога /user/hive/warehouseКомпоненты HIVEТипы данных-tinyint, smallint, int, bigint, float, doubleboolenstring, binarytimestamparraystructmapunionВстроенные агрегатные функции-count(1) – возвращает число членов группы или число различных значений встолбце.count(DISTINCT col)sum(col) – возвращает сумму всех или только различных значений в столбце.sum(DISTINCT col)avg(col) – возвращает среднее, вычисленное по всем или только по различнымзначениям в столбце.avg(DISTINCT col)max(col) – возвращает максимальное значение в столбце.min(col) – возвращает минимальное значение в столбце.Hive: создание таблицы для хранения данныхCREATE TABLE cite (citing INT, cited INT)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ‘.’STORED AS TEXTFILE;SHOW TABLES;DESCRIBE cite;Word Count with HIVECREATE TABLE docs (line STRING);LOAD DATA INPATH ‘docs’ OVERWRITE INTO TABLE docs;CREATE TABLE word_counts ASSELECT word, count (1) AS count FROM(SELECT explode (split(line, ‘\s’)) AS word FROM docs)GROUP BY wordORDER BY word;Pig и Hive в Microsoft HDInsightPig:https://azure.microsoft.com/da-dk/documentation/articles/hdinsight-hadoop-usepig-ssh/Hive:https://azure.microsoft.com/da-dk/documentation/articles/hdinsight-hadoop-usehive-ssh/HBaseHBase – это колоночная база данных, расположенная поверх HDFS, котораяспособна вместить огромные массивы данных (от гигабайтов до петабайтовданных).
HBase используется тогда, когда нужен произвольный доступ к данным,хранящимся в HDFS, в реальном времени и с правом записи и чтения.Модель доступа к данным в HBase имеет следующие ограничения:- поиск ряда по одному ключу;- не поддерживаются транзакции;- доступны только операции по одной строке.http://hbase.apache.org/Разбор домашнего задания №3Использование Multiple OutputsДля требуемой в задании записи файлов используемMultiple Outputs:http://hadoop.apache.org/docs/r2.6.0/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html.