2014-06-25 3 views
0

Мне поручено установить и настроить кластер из двух узлов, чтобы использовать его в качестве доказательства концепции для Hadoop. Кластер содержит одну машину, которая является как ведущим, так и ведомым, а другая - подчиненным. Оба установлены на виртуальных машинах Ubuntu 14.04 с ОЗУ 16 ГБ.Уличные запросы работают очень медленно

Так что я смог получить Hadoop 2.4, установленный на обеих машинах, получив hdfs, пряжу, улей и т. Д. Моя проблема теперь, когда я начинаю добавлять большие файлы/больше данных, запросы сумасшедшие медленны.

select count () из программ, например. Программы содержат 45000 строк в общей сложности около 2,5 МБ. После инициализации требуется всего несколько секунд, чтобы получить результат. Теперь выполняется тот же запрос в другой таблице, содержащей почти 17 миллионов строк, 3,6 ГБ, занимает значительно больше времени (насколько я знаю). Если я запустил счет (), а также его вариации на этой большой таблице, он принимает переменные количества времени. Первый раз это занимает 4 минуты. Я запускаю его сразу после первого окончания, и это занимает 17 минут. Ничего не меняется между прогонами, поэтому я не уверен, что происходит. Часто во время этих длительных прогонов машины замерзают и становятся невосприимчивыми к любому входу. Карта будет оставаться на уровне 0% в течение 5 минут, прыгать примерно до 30%, а затем медленно увеличиваться.

Мой вопрос: это нормальное поведение? Я бы ожидал, что такая же работа будет иметь согласованное время выполнения, если я запустил ее сразу же. Возможно, в Ubuntu есть основная проблема, я не уверен. Если я контролирую использование ЦП или диска во время работы, они оба никогда не являются сумасшедшей высокой территорией, поэтому я не уверен, где ее повесили. При взгляде на файлы журнала не отображаются исключения. Если работа особенно медленная (до 45 минут), в файлах журналов будет отображаться куча SocketTimeoutExceptions.

Я играл с различными настройками, но ничего не помогает.

Любая помощь будет оценена по достоинству.

+0

В каком формате представлены данные? – climbage

+0

Первоначально в формате csv, с разделителями табуляции. – lhoworko

+0

Хмм, трудно сказать, можно ли ожидать такого поведения или нет. Вы просматривали журналы отслеживания работы (или мастер приложений, если вы используете MR/пряжу)? – climbage

ответ

3

Это ненормальное поведение. В Hive я могу обработать ~ 17 миллионов баллов менее чем за минуту, включая время, потраченное во время инициализации карты/уменьшения. Я расскажу о нескольких проблемах, которые могут повлиять на вашу медленную производительность.

  • Виртуальные машины не идеальны для Hadoop. Вам нужны машины с выделенным локальным хранилищем, поскольку дисковый ввод-вывод является, как правило, самым узким местом производительности.
  • У вас есть только две машины (и они виртуальные машины ...) работают все услуги Hadoop, в том числе, но не ограничиваясь ими, мастер-сервисы, таких как Resource Manager (ПРЯЖ), улого сервер , и NameNode (HDFS). Это не оставляет много проблем для задач map/reduce.

Для справки - на нашем кластере dev у нас есть 3 машины, посвященные этим мастер-сервисам. Они не запускают никаких задач по карте/сокращению и не являются частью распределенного хранилища.

Hadoop, конечно же, не самый лучший или быстрый вариант для каждого варианта использования, но ваш кластер из песочницы на самом деле не дает ему большой возможности сиять.

+0

Интересно, у меня были сомнения, что наша текущая настройка была где-то рядом с адекватной. Большое спасибо за то, что нашли время, чтобы помочь мне, информация в Интернете кажется довольно редкой на эту тему. – lhoworko

Смежные вопросы