# Лабораторная работа №3. Знакомство с инструментами Pig и Hive ## Цель * Научиться обрабатывать и проводить анализ данных с помощью инструметов Pig и Hive. ## Выполнение Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них. При необходимости - комментарии по полученным результатам. ## Задание **Внимание**: В локальной папке `stud` создать папку `lab03`. Далее работы проводить в этой папке ### Знакомство с Pig 1.1 Загрузить текстовый файл в соответствии с вариантом. 1.2 В среде `grunt`, запущенной __локально__ реализовать алгоритм подсчета слов (word count). Результат должен быть уполрядочен по алфавиту 1.3 Выполнить подсчет слов в текстовом файле, результат сохранить в файл. 1.4 Модифицировать алгоритм, выводя только слова на первую букву вашей фамилии. 1.5 Модифицировать алгоритм таким образом, чтобы после подсчета word_count и фильтрации по первой букве, в качестве результата выдавалась сумма всех значений столбца `count' (сумма слов). 1.6 Загрузить данные из текстового файла `user_visits.txt` о посещении пользователями сайтов в локальную папку. Познакомиться с данными. 1.7 Загрузить данные из текстового файла `user_info.txt` с информацией о пользователях в локальную папку. Познакомиться с данными. 1.8 Создать запрос, который выводит среднее время посещения всех сайтов пользователем с номером, совпададающим с вашим номером по журналу. Пояснить результат. ### Знакомство с Hive 2.1 В среде `Hive` создать таблицы `visits` и `info`, позволяющие хранить данные из файлов п.п.1.6 и 1.7. 2.2 Загрузить данные в таблицы. 2.3 Найти в HDFS место хранения таблиц, в отчете указать их размер и уровень репликации. 2.4 Сформировать запросы, которые выводят первые 10 строк каждой таблицы. 2.5 Создать запрос, который выводит среднее время посещения всех сайтов пользователем с номером, совпададающим с вашим номером по журналу. Сравнить результат с п.1.8 2.6 Создать запрос, который выведет электронный адрес, идентификатор пользователя, название посещенного сайта и время посещения этого сайта. 2.7 Создать запрос, реализующий полное внешнее соединение таблиц `visits` и `info`. Пояснить, какие строки каждой из таблиц попали или не попали в результирующее множество. ### Варианты заданий 1. http://lib.ru/SHAKESPEARE/ENGL/dream_en.txt 2. http://lib.ru/SHAKESPEARE/ENGL/much_en.txt 3. http://lib.ru/SHAKESPEARE/ENGL/pericles_en.txt 4. http://lib.ru/SHAKESPEARE/ENGL/errors_en.txt 5. http://lib.ru/SHAKESPEARE/ENGL/mercant_en.txt 6. http://lib.ru/SHAKESPEARE/ENGL/winters_en.txt 7. http://lib.ru/SHAKESPEARE/ENGL/measure_en.txt 8. http://lib.ru/SHAKESPEARE/ENGL/allend_en.txt 9. http://lib.ru/SHAKESPEARE/ENGL/pilgrim_en.txt 10. http://lib.ru/SHAKESPEARE/ENGL/macbeth_en.txt 11. http://lib.ru/SHAKESPEARE/ENGL/lear_en.txt 12. http://lib.ru/SHAKESPEARE/ENGL/othel_en.txt ### Вопросы 1. Что такое и для чего нужен инструмент Pig? 1. Как запустить код, написанный на языке Pig Latin? 2. Что такое "мешок", "кортеж" и "поле" в Pig? 1. Что такое и для чего нужен инструмент Hive? 2. Чем отличается Hive от Pig? 3. Какие шаги (какие команды) нужно выполнить, чтобы создать таблицу на основе данных из файла?