2016-07-01 2 views
0

Я вижу ошибку, когда я пытаюсь вставить данные в секционированной таблицы в улей, вот детали:ошибка при вставке данных в секционированной таблицы в улье

Стол:

CREATE TABLE partitionedemp(emp_no int, birth_date string, first_name string, last_name string) Partitioned By(gender string, hire_date string) stored as sequencefile; 

данные выглядят, как показано ниже: enter image description here

вставка сценария:

insert into table partitionedemp partition(gender, hire_date) select emp_no, birth_date, first_name, last_name, gender, hire_date from emp; 

Вот ошибка, которую я получил:

FAILED: SemanticException [Error 10096]: Для строкового режима динамического разбиения требуется хотя бы один столбец статического раздела. Чтобы отключить это набор hive.exec.dynamic.partition.mode = нестрогое

Я последовал за некоторые онлайн предложения по первому выполнить следующие две строки:

SET hive.exec.dynamic.partition = true; 
SET hive.exec.dynamic.partition.mode = nonstrict; 

И вот новое сообщение об ошибке я получил : enter image description here

в конце она говорит:

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 
MapReduce Jobs Launched: 
Stage-Stage-1: Map: 1 Cumulative CPU: 14.39 sec HDFS Read: 0 HDFS Write: 0 FAIL 
Total MapReduce CPU Time Spent: 14 seconds 390 msec 

Обновлено: Я следовал SuG gestion ниже от @leftjoin, и вот новое обновление, все еще не работающее. Любые недостающие или неправильные сценарии?

enter image description here

+0

Восстановить таблицу с одним разделом. Кажется, что есть два секционированных поля, и вы вставляете их только в раздел (rent_date) – leftjoin

ответ

0

Последующие предложения в сообщении исключение и увеличить эти значения:

Например

set hive.exec.max.dynamic.partitions=100000; 
set hive.exec.max.dynamic.partitions.pernode=10000; 

И я предлагаю вам уменьшить количество разделов, если это возможно. Удалите пол, это уменьшит количество разделов. Слишком много мелких файлов не очень хорошая идея для hadoop

+0

Спасибо, я обновил свое оригинальное сообщение, чтобы вставить скриншот, пожалуйста, снова просмотрите вопрос и повторите попытку, большое спасибо. – mdivk

+0

Я добавил больше памяти в vm, где работает хаоп, надеясь решить проблему, если это вызвано нехваткой ресурсов, и я также следовал предложению использовать только один раздел, удалил пол, вот новая вставка: ' Вставить в таблицу parted1emp (hire_date) выберите emp_no, пол, birth_date, first_name, last_name, hire_date от emp; ' все еще сообщают о нехватке памяти, но, похоже, это не так, я описал эту новую проблему [здесь] (http: // stackoverflow. com/questions/38174184/why-hive-failed-for-enough-virtual-memory) – mdivk

+0

Прочтите это: https://azure.microsoft.com/en-in/blog/hive-memory-settings-resolve-out- of-memory-errors-using-azure-hdinsight/и это: https://blogs.msdn.microsoft.com/shanyu/2014/07/31/hadoop-yarn-memory-settings-in-hdinsight/ об исключениях OOM , – leftjoin

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