сообщество программистов

Partitioner Hadoop - хадуп - Class Partitioner (Разбиватель, Разделитель) - 2.2.0

Partitioner (класс в 2.2.0) - назовём его разделитель прежде всего позволяет манипулировать значением ключа для пары ключ-значение - и таким образом манипулировать группировка пар для обработки конкретным редуктором.

Для использования достаточно реализовать (переопределить) такой метод:

int getPartition(K2 key, // ключ очередной пары
                 V2 value, // ключ очередной пары
                 int numPartitions) // число 

Источники
hadoop.apache.org/docs/r1.1.1/api/org/apache/hadoop/mapred/Partitioner.html

java % процент

% - это операция взятие остатка от деления (так называемое "деление по модулю")

Подзадача (task) -Hadoop

Будем называть то, что в английской литературе называют task подзадачей (по отношению к задаче).

Задача порождает (разбивается на) подзадачи map и reduce.

WordCount - поиск максимума с включённым комбинатором (локальным редуктором) - вывод - результат

!	2
!!	2
%%	1
&	1
&&	1
)	1
+	1
++	2
.	1
888	1
=)	1
Freedom	3
Life	1
Linux	1
are.	1
good	1
is	4
life.	1
of	2
part	1
maximum=====  	0
!	2
-------------- 	0
part	1
we	1
where	1
maximum=====  	0
is	2
-------------- 	0
maximum=====  	0
is	4
-------------- 	0

Тасовка (shuffle) - Hadoop

Во многих отношениях тасовка - это "сердце" Hadoop - "то место, где происходят чудеса"
- (с)

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

WordCount - подсчёт максимума - результат

для таких вот входных файлов (первая группа)

!	2
!!	2
%%	1
&	1
&&	1
)	1
+	1
++	2
.	1
888	1
=)	1
Freedom	3
Life	1
Linux	1
are.	1
good	1
is	4
life.	1
of	2
part	2
we	1
where	1
maximum=====  	0
is	4
-------------- 	0

Hadoop - пример входных файлов для обработки (текстовые файлы)

Первая группа

Для начальных экспериментов нам хватит двух файлов -
1-ый:

Linux is part of Freedom . ! ) !!
Freedom is good =)
&& & ! !!
%%
888
++ + ++

Второй:

Freedom is part of life.
Life is where we are.

Job и JobConf в Hadoop

в новом API за конструирование задачи и последующее исполнение теперь отвечает класс Job, а не JobConf

Context.write() вместо OutputCollector.collect()

Context.write() используется вместо OutputCollector.collect() после версии ядра 0.20
Пример для редуктора здесь.

Алгоритм Брезенхема для прямой и окружности

алгоритм немного недоделанный
прямая пока может быть задана только под определенным углом
/
будет допилено и исправлено (готовую задачу не нашел, а переписывать сейчас влом)

Pages

Subscribe to RSS - сообщество программистов