2017-07-18 58 views
1

在Hive上運行簡單的SELECT COUNT(*) FROM Table獲取以下例外。FAILED:執行錯誤,從org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代碼1。沒有這樣的文件或目錄

作業提交失敗,異常 「org.apache.hadoop.io.nativeio.NativeIOException(沒有這樣的文件或目錄 )」失敗:執行錯誤,返回碼1,從 org.apache.hadoop.hive .ql.exec.mr.MapRedTask。沒有這樣的文件或 目錄

簡單的SELECT * FROM Table沒有發生問題。
請提出問題的可能性。 Hive執行引擎是MR。錯誤的

完整堆棧跟蹤:

2017-07-18T07:18:52744 ERROR [主要]:exec.Task(:()) - 作業提交 失敗,異常 「org.apache .hadoop.io.nativeio.NativeIOException(沒有這樣的文件或目錄 )」 ENOENT:在 org.apache.hadoop.io.nativeio.NativeIO $ POSIX.chmodImpl(本機方法) 沒有這樣的文件或目錄在 組織。 apache.hadoop.io.nativeio.NativeIO $ POSIX.chmod(NativeIO.java:230) at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem。 Java的:729) 在 org.apache.hadoop.fs.ChecksumFileSystem $ 1.適用(ChecksumFileSystem.java:505) 在 org.apache.hadoop.fs.ChecksumFileSystem $ FsOperation.run(ChecksumFileSystem.java:486) 在 org.apache.hadoop.fs.ChecksumFileSystem.setPermission(ChecksumFileSystem.java:502) at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:602)at 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) at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1290)at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1287)at java.security.AccessController。 doPrivileged(Native Method) javax.security.auth.Subject.doAs(Subject.java:415)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) at 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)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:415)at org.apache.hadoop.security.UserGroupInfor mation.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) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197)at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner。java:100) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1858)at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1562)at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1313)at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1084)at org.apache.hadoop。 hive.ql.Driver.run(Driver.java:1072)at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232) at 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) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)at sun.reflect。 NativeMethodAccessorImpl.invoke0(本地方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method中。調用(Method.java:606) org.apache.hadoop.util.RunJar.run(RunJar.java:221)at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

2017-07-18T07:18:52,745錯誤[main]:ql.Driver(:()) - FAILE D: 執行錯誤,從 org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代碼1。沒有這樣的文件或 目錄

+0

什麼是您的地圖任務並減少分配給您的羣集的任務內存? – TKHN

+0

Hive嘗試執行聚合時執行MapReduce代碼。簡單的'select * from table'不執行任何MapReduce。所以,很顯然你的集羣是你的集羣在做MapReduce的時候有配置問題。你能分享你的配置嗎? –

回答

1

嘗試檢查hadoop tmp目錄的權限。此目錄的路徑例如在core-site.xml中進行配置。酒店名稱是hadoop.tmp.dir。 我有一個類似的問題,與您所描述的問題相同,它是由用戶造成的,在該用戶下執行MR作業,但沒有對該位置的寫入權限。

相關問題