2013-05-29 3 views
1

Я использую 4 основных узла.Amazon EMR не использует все узлы

Я использую куст для запуска запросов на столе.

Различные запросы, похоже, используются при использовании емкости.

Моя таблица состоит из 8 целых полей и около 1000 строк.

запросы вида

выберите ср (col1-col2) от TBL; select count (*) from tbl; и любой другой запрос, я попытался производят

количество восстановителей = 1, количество мапперов = 1

я попытался с помощью заданных mapred.reduce.tasks = 4;

но он не работает.

Самое странное, что когда я использую mapred.job.tracker = local, это означает, что одна карта и одна сводятся к самому локальному узлу, задача завершается в два раза быстрее.

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

Почему не добавляется емкость, даже немного улучшая время исполнения? Является ли мой образец данных настолько малым, что увеличение емкости не имеет значения, а локализация отображения и сокращение фактически улучшает время?

+0

Я не вошел в S3. Как проверить правильность работы tasktracjer или нет? – Sr1n4th

ответ

2

Причина, по которой вы получаете один картограф, заключается в том, что ваш стол настолько мал. Я предполагаю, что ваша таблица 1000 строк - это один файл, который намного меньше, чем ваш размер блока HDFS. Попробуйте миллионную таблицу строк или больше, и вы начнете видеть, что она использует несколько картографов. The answers to this question содержит дополнительную информацию о том, как выбрано количество картографов.

Причина, по которой вы получаете единственный редуктор, представляет собой комбинацию двух вещей. Во-первых, вы работаете с небольшим количеством данных (для Hive), поэтому вы получаете один редуктор. Во-вторых, в некоторых запросах (например, COUNT(*) FROM some_table) должен быть один редуктор (see the question here)

Вы прибивали его, почему запуск задания локально происходит быстрее. 1000 строк таблицы отлично подходят для проверки логики ваших запросов, но не для определения таких вещей, как runtime. Запуск куста на кластере, а не локально, возможно, только начнет улучшаться, как только у вас будут данные порядка GB. Куст определенно не является «правильным инструментом для работы», пока вы не займетесь вопросами, которые касаются не менее 10-ти из ГБ, хотя 100-е из ГБ или ТБ (или более) легче оправдать.