Лекция 9. Hadoop Streaming_ Joins (2015 Лекции), страница 2
Описание файла
Файл "Лекция 9. Hadoop Streaming_ Joins" внутри архива находится в папке "2015 Лекции". PDF-файл из архива "2015 Лекции", который расположен в категории "". Всё это находится в предмете "(смрхиод) современные методы распределенного хранения и обработки данных" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Входные файлы должны быть отсортированы по ключу2. Входные файлы должны иметь одинаковое число частей (по-сути, выходных файловMapReduce задач)3. Поддерживаются inner и outer joins.Join на стороне ReducerSYMBOLMOMENTтег источникаCLOSESVH120110111100030.1SVH120110111100530.5SVH120110111101030.6SVH120110111101530.2SYMBOLMOMENTCLOSERIH120110111100517100RIH120110111101017300RIH120110111101517200......reduce201101111000SVH1reduce30.1reducereduce201101111005SVH130.5201101111010SVH130.6201101111015SVH130.2201101111005RIH117100201101111010RIH117300201101111015RIH117200...Join на стороне Reducer●●●●●Любые типы joinНакладные расходы на shuffleДля непосредственно join внутри reduce полезна Secondary SortДля импорта нескольких источников используется класс: org.apache.hadoop.mapreduce.lib.input.MultipleInputsОтделение логики join от reduce: org.apache.hadoop.contrib.utils.join.DataJoinReducerBaseДальнейшие планы●●●Лекция “Pig, Hive”1 или 2 лекции “Spark”Решение задачЧто не вошло в курс из Hadoop и его стека●Hadoop:○○○○●●●●●●●PipesСцепление задач MapReduceЮнит-тестированиеOutputFormatAvroParquetFlumeSqoopCrunchHBaseZooKeeperРазбор домашнего задания №2Основные шаги1)2)3)4)Использование двух job: первый для формирования правильногоформата, второй – для работы TotalOrderPartitioner;Создание Writable класса для работы с минимумом и максимумом – этобудет значением;Создание WritableComparable класса для работы с ключом: комбинациейдаты и инструмента;TotalOrderPartitioner:TotalOrderPartitioner.setPartitionFile(myConf, PartitionPath);InputSampler.Sampler<Key, Value> sampler = new InputSampler.RandomSampler<Key, Value>(1, 300);InputSampler.writePartitionFile(myJob, sampler);.