2013-09-25 3 views
0

Резюме: Как я могу получить Hadoop для одновременного использования большего количества процессоров на моем сервере?hadoop cassandra cpu usage

Я запускаю Cassandra и Hadoop на одном высокопроизводительном сервере с 64-гигабайтной ОЗУ, SSD и 16 ядрами процессора. Вход в мое задание mapreduce имеет 50M строк. Во время фазы карты Hadoop создает семь карт. Шесть из них завершены очень быстро, а седьмой пробег в течение двух часов, чтобы завершить фазу карты. Я предложил больше таких как ...

job.getConfiguration(). Set ("mapred.map.tasks", "12");

но Hadoop продолжает создавать только семь. Я бы хотел, чтобы большее количество маршрутизаторов работало параллельно, чтобы лучше использовать 16 ядер на сервере. Может кто-нибудь объяснить, как Hadoop решает, сколько карточек создать?

У меня есть аналогичная проблема во время фазы уменьшения. Я говорю Hadoop о создании 12 редукторов, таких как ...

job.setNumReduceTasks (12);

Hadoop создает 12 редукторов, но 11 быстро завершает работу, а последний работает в течение нескольких часов. Моя работа имеет 300K ключей, поэтому я не думаю, что все они направлены в один и тот же редуктор.

Спасибо.

ответ

0

Номер задачи карты зависит от ваших входных данных.
Например:

  • если источник данных HBase числа является область числа вас данные
  • , если источник данных является файл, номер карты является размер файла/размер блока (64mb или 128mb).

вы не можете указать номер карты в коде

Проблема 6 быстрых и 1 медленно потому, что данные несбалансированным. Раньше я не использовал Кассандру, поэтому я не могу сказать, как это исправить.

+0

Оуэн, спасибо за ваш ответ. – bigdatahacker

+0

Оуэн, спасибо за ваш ответ. Мой исходный источник не является ни HBase, ни файлами. Это стол Кассандры. Я понимаю, что вы не можете сказать Hadoop о том, сколько создателей нужно создать, вы можете только предложить количество картографов, и это то, что я написал в своем посте. Как бы то ни было, задача занимает восемь часов, но большую часть времени работает только один из моих 16 процессоров. Поэтому мне нужно выяснить, как получить 12 или более карт, работающих параллельно, и 12 или более редукторов, работающих параллельно. – bigdatahacker

+0

Возможно, вы можете добавить одновременную способность в код вашего картографа. Это будет намного легче контролировать. –