#hadoop #hive #hiveql
#hadoop #улей #hiveql
Вопрос:
Мне поручено установить и настроить двухузловой кластер для использования в качестве доказательства концепции для Hadoop. Кластер содержит одну машину, которая является одновременно ведущей и подчиненной, а другая — подчиненной. Оба установлены на виртуальных машинах Ubuntu 14.04 с 16 ГБ оперативной памяти.
Итак, я смог установить Hadoop 2.4 на обе машины, успешно запустил hdfs, yarn, hive и т. Д. Моя проблема сейчас в том, что, когда я начинаю добавлять файлы большего размера / больше данных, запросы выполняются безумно медленно.
например, выберите count() из programs. Программы содержат 45000 строк общим объемом около 2,5 МБ. После инициализации требуется всего несколько секунд, чтобы получить результат. Теперь выполнение того же запроса в другой таблице, содержащей почти 17 миллионов строк, объемом 3,6 ГБ, занимает значительно больше времени (как я знаю, так и должно быть). Если я запускаю count() , или и его изменение в этой большой таблице, это занимает разное количество времени. В первый раз это занимает 4 минуты. Я запускаю его сразу после первого завершения, и это занимает 17 минут. Между запусками ничего не меняется, поэтому я не уверен, что происходит. Часто во время этих длительных запусков машины зависают и перестают отвечать на любой ввод. Map будет оставаться на уровне 0% в течение 5 минут, затем увеличится примерно до 30%, а затем медленно увеличится.
Мой вопрос: это нормальное поведение? Я бы ожидал, что одно и то же задание будет выполняться постоянно, если я снова его сразу же запущу. Возможно, в Ubuntu есть основная проблема, я не уверен. Если я отслеживаю использование процессора или диска во время задания, они оба никогда не являются сумасшедшими, поэтому я не уверен, где это зависает. Просмотр файлов журнала не показывает никаких исключений. Если задание выполняется особенно медленно (более 45 минут), в файлах журналов будет отображаться множество исключений SocketTimeoutExceptions.
Я играл с разными параметрами конфигурации, но, похоже, ничего не помогает.
Любая помощь будет оценена.
Комментарии:
1. В каком формате находятся данные?
2. Первоначально в формате csv с разделителями табуляции.
3. Хм, сложно сказать, можно ли ожидать такого поведения или нет. Вы просматривали журналы отслеживания заданий (или мастер приложения, если вы используете MR / yarn)?
4. … обычно интерфейс командной строки Hive сообщает вам, где вы можете отслеживать статус задания непосредственно перед его запуском.
5. Я могу отслеживать ход выполнения задания в веб-интерфейсе, но часто он слишком медленный в использовании (загрузка каждой страницы занимает несколько минут). Самой большой проблемой, по-видимому, является время, необходимое для фактического запуска каждой задачи. Как только я запускаю задание, это может занять до 5 минут, когда каждая задача будет просто находиться в «НОВОМ» в веб-интерфейсе. Как только это действительно начинается, обычно это происходит довольно быстро.
Ответ №1:
Это ненормальное поведение. В Hive я могу обработать ~ 17 миллионов точек менее чем за минуту, включая время, затраченное на инициализацию map / reduce. Я перечислю пару проблем, которые могут способствовать вашей низкой производительности.
- Виртуальные машины не идеальны для Hadoop. Вам нужны машины с выделенным локальным хранилищем, поскольку дисковый ввод-вывод, как правило, является самым большим узким местом в производительности.
- У вас есть только две машины (и они виртуальные машины …), На которых запущены все службы Hadoop, включая, но не ограничиваясь ими, основные службы, такие как Resource Manager (YARN), сервер Hive и NameNode (HDFS). Это не оставляет много места для задач сопоставления / сокращения.
Для справки — в нашем кластере разработчиков у нас есть 3 машины, выделенные для этих основных служб. Они не выполняют никаких задач сопоставления / сокращения и не являются частью распределенного хранилища.
Hadoop, конечно, не самый лучший или быстрый вариант для каждого варианта использования, но ваш кластер изолированной среды на самом деле не дает ему особых шансов проявить себя.
Комментарии:
1. Интересно, у меня были сомнения в том, что наша текущая настройка была хоть сколько-нибудь адекватной. Большое спасибо, что нашли время, чтобы помочь мне, информация в Интернете кажется довольно скудной по этой теме.