2015-03-10 2 views
0

я запустить следующий улей запроссколько свободного места на диске требуется для запуска улей запрос

создать таблицу table_llv_N_C, как выберите table_line_n_passed.chromosome_number, table_line_n_passed.position, table_line_c_passed.id из table_line_n_passed присоединиться table_line_c_passed на (table_line_n_passed.chromosome_number = table_line_c_passed.chromosome_number)

и получил следующее сообщение об ошибке ...... org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row (tag=1) {"key":{"joinkey0":"12"},"value":{"_col2":"."},"alias":1} at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:258) ... 7 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive-root/hive_2015-03-09_10-03-59_970_3646456754594156815-1/_task_tmp.-ext-10001/_tmp.000000_0 could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and no node(s) are excluded in this operation. ......

УО Причина может заключаться в нехватке дискового пространства в кластере HDFS. Подробная информация о диске являются

hdfs dfs -df -h

Filesystem Size Used Available Use%

hdfs://x.y.ab.com:8020 159.7 G 21.9 G 110.7 G 14%.

table_line_n_passed имеющий 4767409 строк и 1.1 G размер.

Аналогично table_line_c_passed имеет 4717082 строки и размер 1,0 G.

Действительно ли улье требуется столько места (более доступное свободное пространство 110 G) для обработки данных. как рассчитать, сколько свободного пространства требуется перед запуском запроса. Любой способ запуска запроса в пределах доступного свободного места.

PS: если я использовал LIMIT 10000 в вышеуказанном запросе, то он работает нормально.

План выполнения

EXPLAIN create table table_llv_N_C as select table_line_n_passed.chromosome_number,table_line_n_passed.position,table_line_c_passed.id from table_line_n_passed join table_line_c_passed on (table_line_n_passed.chromosome_number=table_line_c_passed.chromosome_number);

OK

абстрактное синтаксическое дерево:

(TOK_CREATETABLE (TOK_TABNAME table_llv_N_C) TOK_LIKETABLE (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_TABREF (TOK_TABNAME table_line_n_passed)) (TOK_TABREF (TOK_TABNAME table_line_c_passed)) (= (. (TOK_TABLE_OR_COL table_line_n_passed) chromosome_number) (. (TOK_TABLE_OR_COL table_line_c_passed) chromosome_number)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_n_passed) chromosome_number)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_n_passed) position)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_c_passed) id))))))

STAGE DEPENDENCIES:

(Stage-1 is a root stage

Stage-0 depends on stages: Stage-1

Stage-4 depends on stages: Stage-0

Stage-2 depends on stages: Stage-4

ЭТАП ПЛАНЫ: Этап: Этап-1 Карта Уменьшить Алиас -> Карта Оператор Дерево: table_line_c_passed просмотр таблицы псевдоним: table_line_c_passed Сокращение вывода оператор ключевых выражений: выражение: chromosome_number Типа: Строка порядка сортировки: + Map-Reduce раздела колонок: выраж: chromosome_number Тип: Строка тег: 1 значение выражения: EXPR: ID типа : строка table_line_n_passed псевдоним просмотра таблицы: table_line_n_passed Снизить выход Оператор ключевые выражения: EXPR: chromosome_number типа : Строка заказа сортировки: + Map-Reduce разделительные колонки: выражение: chromosome_number Тип: Строка тег: 0 значение выражения: выражение: chromosome_number Тип: Строка выражение: позиция Тип: INT Уменьшить Operator Tree : Регистрация оператор состояния карта: Inner Регистрация 0 до 1 условия выражения: 0 {VALUE._col0} {} VALUE._col1 1 {VALUE._col2} handleSkewJoin: ложные outputColumnNames: _col0, _col1, _col14 Выбор оператор выражение: EXPR: _col0 Тип: Строка выражения: _col1 типа: Int выражения: _col14 Тип: Строка outputColumnNames: _col0, _col1, _col2 Файл Выход оператор сжат: ложные GlobalTableId: формат ввода:: 1 таблица org.apache.hadoop.mapred.TextInputFormat выходной формат: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat имя: ярко.table_llv_N_C

Этап: Этап-0 Перемещение оператор файлы: HDFS каталог: истинное назначение: HDFS: //cheetah.xxx.yyyy.in: 8020/пользователь/ульи/склад/bright.db/table_llv_n_c

Этап: Этап-4 Создание таблицы Оператор: Создание Таблица столбцов: chromosome_number строки, положение INT, строка идентификатор , если не существует: ложный формат вход: org.apache.hadoop.mapred.TextInputFormat # ковши: -1 Формат вывода: o rg.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat имя: table_llv_N_C isExternal: ложному

Этап: Стадии-2 Статс-Aggr Оператор

Время съемки: 0.146 секунды

+0

Есть ли у вас план выполнения запроса (то есть выход из 'EXPLAIN')? – rchang

+0

@rchang Я включил план выполнения в вышеприведенном сообщении ... – krish

ответ

0

Перейдите по этой ссылке: https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

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

hive.map.aggr.hash.force.flush.memory.threshold 

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

hive.mapjoin.localtask.max.memory.usage 
+0

Запрос работает 100% для карты, но зависает при уменьшении операции при завершении 68% .. после достижения значения по умолчанию Улей должен очищать данные .. может ли сказать, какое свойство и значение i необходимо настроить выполнение над запросом. – krish

+0

Попробуйте изменить значение этого файла hive.mapjoin.localtask.max.memory.usage. Значение по умолчанию - 0.90. Также попробуйте изменить значение hive.mapjoin.followby.gby.localtask.max.memory.usage. Его значение по умолчанию - 0,55. Если оба вышеизложенных не работают, измените значение hive.mapjoin.check.memory.rows. Значение по умолчанию - 100000. Вот почему вы не получаете исключения, когда вы ограничиваете запрос под этим номером. –

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