2016-04-26 6 views
-1

ハイブクエリを実行するとエラーが発生します。この問題を解決するのを手伝ってください。

HIVE>上書きテーブルを挿入するbucket_emp1 select * from emp;

何のオペレータ org.apache.hadoop.utilを減らすにはありませんので、

クエリIDを= = 3 起動ジョブhduser_20160426213038_58cbf1dc-a345-40f8-ab3d-a3258046b279 合計ジョブが削減タスクの1 3のうち数が0に設定されています.DiskChecker $ DiskErrorException:ローカルディレクトリに空き領域がありません。 org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWriteでorg.apache.hadoop.fs.LocalDirAllocator $ AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:366) (LocalDirAllocator.java:150)org.apache.hadoopで で 。 fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:131) at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:115) at 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。 doPrivileged(ネイティブメソッド) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) at org.apache.hadoop org.apache.hadoop.mapred.JobClient $ 1.runで.mapreduce.Job.submit(Job.java:1293) (JobClient.java:562) org.apache.hadoop.mapred.JobClient $ 1.run(JobClientで.java:557) at java.security.AccessController.doPrivileged(ネイティブメソッド) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.Us org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)の で、erGroupInformation.doAs(UserGroupInformation.java:1628) をorg.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557) (MapRedTask.java:0123) 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) (org.apache.hado.java:1412) (org.apache.hado.java:1412) hadoop.hive.ql.Driver.runInternal(Driver.java:1195)org.apache.hadoop.hive.ql.Driver.runでorg.apache.hadoop.hive.ql.Driver.run(Driver.java:1059) (Driver.java:1049)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) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) at sun.reflect.NativeMethodAccessorImpl。org.apache.hadoopでjava.lang.reflect.Method.invoke(Method.java:498) でsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で(NativeMethodAccessorImpl.java:62) を呼び出します。 util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) ジョブのサブミットに失敗しました 'org.apache.hadoop.util.DiskChecker $ DiskErrorException ' FAILED:実行エラー、org.apache.hadoop.hive.ql.exec.mr.MapRedTaskの戻りコード1を返します。

+0

「ローカルディレクトリには空き容量がありません」と表示されています。他に何か要りますか? – gudok

答えて

0

マップ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

関連する問題