【发布时间】:2017-07-18 02:58:04
【问题描述】:
在运行简单的SELECT COUNT(*) FROM Table 时在 Hive 中获取以下异常。
作业提交失败,出现异常 'org.apache.hadoop.io.nativeio.NativeIOException(没有这样的文件或 directory)' FAILED: 执行错误,从返回代码 1 org.apache.hadoop.hive.ql.exec.mr.MapRedTask。没有这样的文件或 目录
简单的SELECT * FROM Table 不会出现问题。
请提出问题可能出在哪里。 Hive 执行引擎是 MR。
错误的完整堆栈跟踪:
2017-07-18T07:18:52,744 错误 [main]: exec.Task (:()) - 作业提交 异常失败 'org.apache.hadoop.io.nativeio.NativeIOException(没有这样的文件或 directory)' ENOENT: 没有这样的文件或目录 org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmodImpl(Native Method) 在 org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmod(NativeIO.java:230) 在 org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:729) 在 org.apache.hadoop.fs.ChecksumFileSystem$1.apply(ChecksumFileSystem.java:505) 在 org.apache.hadoop.fs.ChecksumFileSystem$FsOperation.run(ChecksumFileSystem.java:486) 在 org.apache.hadoop.fs.ChecksumFileSystem.setPermission(ChecksumFileSystem.java:502) 在 org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:602) 在 org.apache.hadoop.mapreduce.JobResourceUploader.uploadFiles(JobResourceUploader.java:94) 在 org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:95) 在 org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:190) 在 org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) 在 org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 在 org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) 在 org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:575) 在 org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:570) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 在 org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:570) 在 org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:561) 在 org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:433) 在 org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:138) 在 org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197) 在 org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) 在 org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1858) 在 org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1562) 在 org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1313) 在 org.apache.hadoop.hive.ql.Driver.run(Driver.java:1084) 在 org.apache.hadoop.hive.ql.Driver.run(Driver.java:1072) 在 org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232) 在 org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183) 在 org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399) 在 org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776) 在 org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714) 在 org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:136)
2017-07-18T07:18:52,745 错误 [main]: ql.Driver (:()) - 失败: 执行错误,返回代码 1 从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask。没有这样的文件或 目录
【问题讨论】:
-
你的地图任务和减少任务分配给集群的内存是什么?
-
Hive 在您尝试进行聚合时执行 MapReduce 代码。简单的“从表中选择 *”不执行任何 MapReduce。所以,很明显,您的集群是您的集群在执行 MapReduce 时存在配置问题。可以分享一下你的配置吗?
标签: hive