|
Hadoop
|
|||
---|---|---|---|
#18+
Вопрос имеющим реальный опыт с Hadoop. Есть некоторый граф, узлы которого являются задачами. При этом каждый такой узел может иметь зависимости от других узлов. Обработку некоторого подграфа можно стартовать от любого узла, при этом каждый узел в ходящий в этот запущенный подграф ожидает выполнения (уведомления о выполнении) всех своих зависимостей и запускается только тогда, когда все зависимости выполнены. Сейчас у меня есть собственный сервис который реализует этот механизм (пока граф задач не очень большой). Я хотел бы реализовать распределенную обработку на основе Apache Hadoop. Есть ли что то готовое(какой то каркас) в Hadoop, что позволяет определить последовательность выполнения задач в соответствии с их зависимостями? Или эту логику мне придется реализовывать самостоятельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 14:33 |
|
Hadoop
|
|||
---|---|---|---|
#18+
"Я хотел бы реализовать распределенную обработку на основе Apache Hadoop". А почему именно Hadoop? Он заточен под MapReduce, а у вас задача более общего вида. Вы сначала сформулируйте требования к платформе: - на одной машине или на кластере - с сохранением промежуточных данных для восстановления, или без - вычислительный граф статический или может расширяться в процессе вычислений - нужна ли особая эффективность реализации (это если у вас миллионы узлов, исполнение каждого менее миллисекунды, так что накладные расходы способны съесть всю прибыль от распараллеливания) Почитайте http://www.doc.ic.ac.uk/~vc100/papers/Scientific_workflow_systems.pdf Потом погуглите java scientific workflow or dataflow. И найдете наиболее подходящую готовую реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 14:03 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Если верно понял задачу, то Вам нужно приведение графа к ярусно-параллельной форме. Алгоритм в принципе простой, но причем здесь Hadoop непонятно, обязательно прикрутить к этому MapReduce? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 14:46 |
|
Hadoop
|
|||
---|---|---|---|
#18+
just_vladimir, >>обязательно прикрутить к этому MapReduce? Да ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 21:01 |
|
Hadoop
|
|||
---|---|---|---|
#18+
>>>А почему именно Hadoop? Он заточен под MapReduce, а у вас задача более общего вида. Задача сводится к шагам: Загрузка-Вычисления-Вывод результатов >>Вы сначала сформулируйте требования к платформе: >>- на одной машине или на кластере на небольшом кластере >>- с сохранением промежуточных данных для восстановления, или без С сохранением >>- вычислительный граф статический или может расширяться в процессе вычислений Пока думаю что статический, по крайней мере весь граф известен при запуске процесса >>- нужна ли особая эффективность реализации (это если у вас миллионы узлов, исполнение каждого менее миллисекунды, так что накладные расходы способны съесть всю прибыль от распараллеливания) пока не знаю, зависит от сложности алгоритма и величины графа. На первое время достаточен отклик в порядке 2 сек после первоначальной загрузки исторических данных (данные впоследствии стримом подгружаются в реалтайме, или даже по таймеру) >>>Почитайте http://www.doc.ic.ac.uk/~vc100/papers/Scientific_workflow_systems.pdf Потом погуглите java scientific workflow or dataflow. И найдете наиболее подходящую готовую реализацию. Все существующие workflow системы ориентированы на старт процесса с заранее заданной точки. Мне (упрощенно) нужен старт с произвольной точки. Смотрел много чего, но не видел подобных реализаций в существующих workflow. Знаете что то подобное? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 21:13 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Роман Дынник>>>А почему именно Hadoop? Он заточен под MapReduce, а у вас задача более общего вида. Задача сводится к шагам: Загрузка-Вычисления-Вывод результатов Эти шаги характерны для любой вычислительной системы, при чем здесь MapReduce? Роман ДынникВсе существующие workflow системы ориентированы на старт процесса с заранее заданной точки. Мне (упрощенно) нужен старт с произвольной точки. Что вы имеете ввиду под точкой старта? Это точка в пространстве графа (узел) или во времени (этап вычислений)? В обоих случаях, для исполнения заданной точки необходимо исполнить предысторию с начальной точки - как вы хотите начать исполняться с середины, не исполнив начала? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 15:25 |
|
Hadoop
|
|||
---|---|---|---|
#18+
rfq Это точка в пространстве графа (узел) или во времени (этап вычислений)? В обоих случаях, для исполнения заданной точки необходимо исполнить предысторию с начальной точки - как вы хотите начать исполняться с середины, не исполнив начала? Это точка и в пространстве графа, и во времени. Начальная точка характеризует какой то подпроцесс, определяемый подграфом зависимостей от этой точки. При этом почти одновременно я могу стартовать несколько точек и если какое то подмножество точек пересекается и часть из них уже выполняется, то они не стартуют повторно. У каждой вершины есть состояние (может быть сброшено). Если точка когда либо была успешно расчитана, то запуск какого-либо подграфа не должен вызвать ее повторный расчет(процессинг) если только не перерасчитываются нижележащие зависимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 15:38 |
|
Hadoop
|
|||
---|---|---|---|
#18+
rfqпри чем здесь MapReduce MapReduce позволяет быстро выполнить загрузку и преобразование данных с расчетом агрегатов и/или каких-либо промежуточных данных, сохраняет все это в распределенной файловой системе, используя запросы к которой можно получить довольно быстрый отклик. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 15:43 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Каждая точка по сути это процесс MapReduce, но мне как то необходимо контролировать запуск этих процессов, некоторой специфичной логикой, основанной на ярусной форме графа. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 15:46 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Роман Дынникrfqпри чем здесь MapReduce MapReduce позволяет быстро выполнить загрузку и преобразование данных с расчетом агрегатов и/или каких-либо промежуточных данных, сохраняет все это в распределенной файловой системе, используя запросы к которой можно получить довольно быстрый отклик. на 100 мегабайт данных постгре сделает это быстрее и качественнее (adHoc, все дела) Модератор: Тема перенесена из форума "Java". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:57 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Penkov Vladimir, я не говорил что 100 Мб... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 20:45 |
|
Hadoop
|
|||
---|---|---|---|
#18+
А можете хотя бы намекнуть в какой области требуются такие вычисления на больших гарфах? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2013, 10:53 |
|
Hadoop
|
|||
---|---|---|---|
#18+
Предлагаю Oozie. В данном инструменте есть два раздела: 1. координаторы. Представляют собой триггеры запуска чего-либо. Триггером может служить: событие во времени (через 5 минут после начала часа, раз в сутки в определнный час и т.д.), наличие флага, например файла _SUCCESS в каталоге HDFS 2. workflows (процессы?). При помощи них можно описать граф. Есть поддержка map-reduce, streming, pig, hive (к сожалению, пока что только Hive1, это ограничение легко обходится при помощи кастомного Java action или shell action с помощью вызова beline). Процесс можно форкать, джоинить. Прямо с ходу есть ощущение, oozie сильно упростит вам жизнь. Если что, спрашивайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2013, 17:24 |
|
Hadoop
|
|||
---|---|---|---|
#18+
_dodgy_, анализ соц. сетей, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2013, 17:26 |
|
|
start [/forum/topic.php?fid=48&gotonew=1&tid=1856952]: |
0ms |
get settings: |
18ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
77ms |
get topic data: |
6ms |
get first new msg: |
86ms |
get forum data: |
1ms |
get page messages: |
477ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 998ms |
0 / 0 |