2016-04-26 223 views
-1

當我運行配置單元查詢時出現以下錯誤。請幫我解決這個問題。

HIVE> insert overwrite table bucket_emp1 select * from emp;

查詢ID = hduser_20160426213038_58cbf1dc-a345-40f8-ab3d-a3258046b279 就業總數= 3 啓動工作1出的reduce任務設置爲0的3 數,因爲沒有降低運營商 org.apache.hadoop.util .DiskChecker $ DiskErrorException:任何本地目錄中都沒有可用空間。 在org.apache.hadoop.fs.LocalDirAllocator $ AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:366) 在org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:150) 在org.apache.hadoop。 fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:131) 在org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:115) 在org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java: 131) at org.apache.hadoop.mapred.LocalJobRunner $ Job。(LocalJobRunner.java:163) at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:731) at org.apache.hadoop .mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:536) at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1296) at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1293) at java.security.AccessController。在org.apache.hadoop上的org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) .mapreduce.Job.submit(Job.java:1293) at org.apache.hadoop.mapred.JobClient $ 1.run(JobClient.java:562) at org.apache.hadoop.mapred.JobClient $ 1.run(JobClient .java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.Us erGroupInformation.doAs(UserGroupInformation.java:1628) 在org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557) 在org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:431) at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java: 137) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:88) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1653) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1412) at org.apache。 hadoop.hive.ql.Driver.runInternal(Driver.java:1195) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049) at org.apache。 hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165) at org.apache.hadoop.hive.cli。 CliDriver.processLine(CliDriver.java:376) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:736) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver。的java:681) 在org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl。在org.apache.hadoop處的java.lang.reflect.Method.invoke(Method.java:498) 處調用(NativeMethodAccessorImpl.java:62) (在DelegatingMethodAccessorImpl.java:43) 。 (org.apache.hadoop.util.RunJar.main(RunJar.java:136) 作業提交失敗,出現異常' (在任何本地目錄中沒有可用空間)' FAILED:執行錯誤,來自org.apache.hadoop.hive.ql.exec.mr.MapRedTask的返回代碼1

+0

它說:「任何本地目錄中沒有空間可用」。你還需要什麼? – gudok

回答

0

Map Reduce框架查找指定的目錄通過mapreduce.cluster.local.dir參數在您的工作處理和之後,它驗證是否有我在目錄上是否有足夠的空間,以便它可以爲它創建中間文件。

如果您的目錄沒有可用空間可用,並且報告錯誤與您共享,則減少作業將失敗。

確保本地目錄上有足夠的空間。

最好壓縮(如Gzip compression)中間輸出文件,以便在處理過程中佔用較少的空間。

conf.set(「mapred.compress.map.output」, 「true」) 
conf.set(「mapred.output.compression.type」, 「BLOCK」); 
conf.set(「mapred.map.output.compression.codec」, 「org.apache.hadoop.io.compress.GzipCodec」); 
+0

感謝您的回覆。請告訴我如何增加空間,我應該從我的文件系統中刪除一些數據或者是否有任何過程來增加空間。我的硬盤總大小爲200 GB免費。 – user2866268

相關問題