Спекулятивное тестирование Hadoop

Я работаю над Hadoop для моей магистерской диссертации, Hadoop 1.1.2.

Я изучаю новый алгоритм для спекулятивных задач и поэтому на этом первом шаге я пытаюсь применить некоторые изменения в коде.

К сожалению, также используя 2 узла, я не могу вызвать спекулятивное выполнение. Я написал несколько строк кода как Log в классе DefaultTaskSelector (это класс для умозрительной задачи), но этот класс после инициализации никогда не вызывается классом FairScheduler.

Я также активировал опцию "спекулятивный" в файле конфигурации (mapred-site...xml), но ничего.

Итак, вопрос: как я могу вызвать / вызвать спекулятивное исполнение?

С уважением

2 ответа

Спекулятивное выполнение обычно происходит, когда работает несколько картографов, и один или несколько из них отстают от других. Хороший способ добиться этого:

  • настроить улей
  • настроить секционированную таблицу
  • убедитесь, что данные достаточно велики для запуска многих картографов. Это означает: как минимум несколько десятков блоков данных HDFS
  • введите данные в разделы: у одного из разделов с сильно искаженными данными намного больше, чем у других разделов.
  • запустить выбор * из таблицы

Теперь вы можете увидеть спекулятивный запуск исполнения.

Если нет, не стесняйтесь вернуться сюда. Я могу предоставить дополнительные предложения (например, сделать несколько умеренно сложных запросов, которые могут вызвать SE)

РЕДАКТИРОВАТЬ

Улей может быть немного натяжкой для вас. Но вы можете применить "дух" стратегии и к обычным файлам HDFS. Напишите программу отображения / уменьшения с настраиваемым разделителем, который намеренно искажен: то есть он заставляет один маппер выполнять большую часть работы.

Не забудьте иметь несколько десятков блоков hdfs (по крайней мере), чтобы дать трекерам задач приличный объем работы, чтобы пережевать.

Вы должны иметь возможность вызывать спекулятивное выполнение, используя два метода: setMapSpeculativeExecution(логическое значение) и setReduceSpeculativeExecution(логическое значение), которые можно указать с помощью Job, конфигурации задания MapReduce.

Другие вопросы по тегам