使用yarn的hive问题

llycmphe  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(944)

我在yarn上运行hivesql,它在join条件下抛出错误,我可以创建外部表和内部表,但在使用命令时无法创建表

  1. create table as AS SELECT name from student.

当通过hivecli运行相同的查询时,它可以正常工作,但是使用spring jog时会抛出错误

  1. 2016-03-28 04:26:50,692 [Thread-17] WARN
  2. org.apache.hadoop.hive.shims.HadoopShimsSecure - Can't fetch tasklog:
  3. TaskLogServlet is not supported in MR2 mode.
  4. Task with the most failures(4):
  5. -----
  6. Task ID:
  7. task_1458863269455_90083_m_000638
  8. -----
  9. Diagnostic Messages for this Task:
  10. AttemptID:attempt_1458863269455_90083_m_000638_3 Timed out after 1 secs
  11. 2016-03-28 04:26:50,842 [main] INFO
  12. org.apache.hadoop.yarn.client.api.impl.YarnClientImpl - Killed application
  13. application_1458863269455_90083
  14. 2016-03-28 04:26:50,849 [main] ERROR com.mapr.fs.MapRFileSystem - Failed to
  15. delete path maprfs:/home/pro/amit/warehouse/scratdir/hive_2016-03-28_04-
  16. 24-32_038_8553676376881087939-1/_task_tmp.-mr-10003, error: No such file or
  17. directory (2)
  18. 2016-03-28 04:26:50,852 [main] ERROR org.apache.hadoop.hive.ql.Driver -
  19. FAILED: Execution Error, return code 2 from

根据我的发现,我认为scratdir有一些问题。
如果有人面临同样的问题,请提出建议。

rseugnpd

rseugnpd1#

在运行下面的配置单元查询时,我遇到了类似的问题

  1. 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;

我对上述陈述进行了解释,结果如下。

  1. 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.
  2. 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.
  3. Time taken: 0.886 seconds, Fetched: 24 row(s)

检查了日志

  1. yarn logs -applicationID application_1458863269455_90083

错误发生在管理团队升级mapr之后。这可能是由于一些升级或安装问题和tez配置(如下面日志中的873行所示)。或者,配置单元查询在语法上不支持tez优化。这样说是因为在我的例子中,外部表上的另一个配置单元查询运行良好。不过,得再深入一点。
虽然不确定,但日志中最相关的错误行如下所示:

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

解决方案:
这可能是由于某些打开的文件或应用程序正在使用某些资源而导致的。请查收https://unix.stackexchange.com/questions/11238/how-to-get-over-device-or-resource-busy
你可以运行 explain <your_Hive_statement> 在结果执行计划中,您可能会遇到配置单元执行引擎无法删除的文件名/目录,例如。 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. 转到步骤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/ 在路径3中,做 ls -a 或者 lsof +D /path 将显示阻止删除文件的打开进程ID。
如果你跑了 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清楚地表明,从hive2.0开始,就不再支持通过hivecli运行“hiveon spark”(或managed)表了,今后将不再支持它。必须在spark中使用hivecontext来运行配置单元查询。但您仍然可以通过配置单元cli在配置单元外部表上运行查询。

展开查看全部
ewm0tg9j

ewm0tg9j2#

如果递归目录不存在,则会发生此问题。配置单元不会自动递归创建目录。
请检查是否存在从根目录到子\表级别的目录

相关问题