2016-03-29 2 views
1

Я бег ульи SQL на пряже, он бросает ошибку с условием соединения, я могу создавать внешний, а также внутреннюю таблицу, но не удался создать таблицу, когда команда использованияHive вопрос с использованием пряжи

create table as AS SELECT name from student. 

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

2016-03-28 04:26:50,692 [Thread-17] WARN  
org.apache.hadoop.hive.shims.HadoopShimsSecure - Can't fetch tasklog: 
TaskLogServlet is not supported in MR2 mode. 

Task with the most failures(4): 
----- 
Task ID: 
task_1458863269455_90083_m_000638 
----- 
Diagnostic Messages for this Task: 
AttemptID:attempt_1458863269455_90083_m_000638_3 Timed out after 1 secs 

2016-03-28 04:26:50,842 [main] INFO  
org.apache.hadoop.yarn.client.api.impl.YarnClientImpl - Killed application  
application_1458863269455_90083 

2016-03-28 04:26:50,849 [main] ERROR com.mapr.fs.MapRFileSystem - Failed to 
delete path maprfs:/home/pro/amit/warehouse/scratdir/hive_2016-03-28_04- 
24-32_038_8553676376881087939-1/_task_tmp.-mr-10003, error: No such file or 
directory (2) 

2016-03-28 04:26:50,852 [main] ERROR org.apache.hadoop.hive.ql.Driver - 
FAILED: Execution Error, return code 2 from 

по моим выводам, я думаю, есть некоторые проблемы с scratdir.

Просьба предложить, если кто-либо сталкивается с той же проблемой.

ответ

0

Эта проблема возникает, если рекурсивный каталог не существует. Hive автоматически не создает каталоги.

Пожалуйста, проверьте наличие каталогов на ребенок \ уровень таблицы из корня

0

Я столкнулся с аналогичной проблемой при выполнении ниже улого запроса

select * from <db_name>.<internal_tbl_name> where <field_name_of_double_type> in (<list_of_double_values>) order by <list_of_order_fields> limit 10; 

Я выполнил объяснить на вышеуказанном заявлении и ниже был результат.

fs.FileUtil: Failed to delete file or dir [/hdfs/Hadoop_Misc_Logs/Edge01/local_scratch/<hive_username>/41289638-cd53-4d4b-88c9-3359e9ec99e2/hive_2017-05-08_04-26-36_658_6626096693992380903-1/.nfs0000000057b93e2d00001590]: it still exists. 
2017-05-08 04:26:37,969 WARN [41289638-cd53-4d4b-88c9-3359e9ec99e2 main] fs.FileUtil: Failed to delete file or dir [/hdfs/Hadoop_Misc_Logs/Edge01/local_scratch/<hive_username>/41289638-cd53-4d4b-88c9-3359e9ec99e2/hive_2017-05-08_04-26-36_658_6626096693992380903-1/.nfs0000000057b93e2700001591]: it still exists. 
Time taken: 0.886 seconds, Fetched: 24 row(s) 

и проверил журналы через

yarn logs -applicationID application_1458863269455_90083 

Ошибка произошла после того, как MapR обновления от команды администратора. Вероятно, это связано с некоторыми проблемами обновления или установки и конфигурациями Tez (как предложено в строке 873 в журнале ниже). Или, возможно, запрос Hive синтаксически не поддерживает оптимизацию Tez. Сказав это, потому что другой запрос Hive на внешнюю таблицу работает отлично в моем случае. Нужно проверить немного глубже.

Хотя не уверены, но линия ошибки в журналах, которая выглядит наиболее уместными выглядит следующим образом:

2017-05-08 00:01:47,873 [ERROR] [main] |web.WebUIService|: Tez UI History URL is not set 

Решение:

Это, вероятно, происходит из-за некоторые открытые файлы или приложения, используя некоторые ресурсы. Pls проверить https://unix.stackexchange.com/questions/11238/how-to-get-over-device-or-resource-busy

  1. Вы можете запустить explain <your_Hive_statement>

  2. В плане выполнения результат, вы можете встретить имена файлов/директорий, что выполнение Hive двигатель не удалить, например,

    2017-05-08 04:26:37,969 WARN [41289638-cd53-4d4b-88c9-3359e9ec99e2 main] fs.FileUtil: Failed to delete file or dir [/hdfs/Hadoop_Misc_Logs/Edge01/local_scratch/<hive_username>/41289638-cd53-4d4b-88c9-3359e9ec99e2/hive_2017-05-08_04-26-36_658_6626096693992380903-1/.nfs0000000057b93e2d00001590]: it still exists.

  3. Перейти к пути, указанному в шаге 2, например, /hdfs/Hadoop_Misc_Logs/Edge01/local_scratch/<hive_username>/41289638-cd53-4d4b-88c9-3359e9ec99e2/hive_2017-05-08_04-26-36_658_6626096693992380903-1/

  4. В пути 3, выполняющем ls -a или lsof +D /path, будут показаны открытые process_ids, блокирующие файлы из delete.

  5. Если вы запустите ps -ef | grep <pid>, вы получаете

    hive_username <pid> 19463 1 05:19 pts/8 00:00:35 /opt/mapr/tools/jdk1.7.0_51/jre/bin/java -Xmx256m -Dhiveserver2.auth=PAM -Dhiveserver2.authentication.pam.services=login -Dmapr_sec_enabled=true -Dhadoop.login=maprsasl -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/opt/mapr/hadoop/hadoop-2.7.0/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/opt/mapr/hadoop/hadoop-2.7.0 -Dhadoop.id.str=hive_username -Dhadoop.root.logger=INFO,console -Djava.library.path=/opt/mapr/hadoop/hadoop-2.7.0/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dlog4j.configurationFile=hive-log4j2.properties -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/opt/mapr/hive/hive-2.1/bin/../conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender -Djava.security.auth.login.config=/opt/mapr/conf/mapr.login.conf -Dzookeeper.saslprovider=com.mapr.security.maprsasl.MaprSaslProvider -Djavax.net.ssl.trustStore=/opt/mapr/conf/ssl_truststore org.apache.hadoop.util.RunJar /opt/mapr/hive/hive-2.1//lib/hive-cli-2.1.1-mapr-1703.jar org.apache.hadoop.hive.cli.CliDriver

ЗАКЛЮЧЕНИЕ:

HiveCLiDriver ясно показывает, что запуск "Улей на Спарк" (или управляемых) таблицы через Улей CLI больше не поддерживается с Hive 2.0 и он будет устаревшим в будущем. Вы должны использовать HiveContext в Spark для запуска запросов на использование. Но вы по-прежнему можете запускать запросы на внешние таблицы Hive через Hive CLI.

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