requested Memory=-1

2997 ワード

ソフトウェアバージョン:Hadoop 2.6.6(ソースはCDH 5.7.0を使用し、hadoop 2.6.0に対応)、クラスタはHadoop 2.6.4(元の生、JDK 1.8)、Intellij idea 14(JDK 1.8)を使用します.
問題の説明:Intellij IDEAを使ってMrを打つJarパケットをコンパイルして、直接端末でhadoop jarを使って運行することができますが、直接Intellij IDEAに提出しましたが、ミッションは失敗しましたか?
検索ログは次のように表示されます.
2016-10-26 09:01:48,566 ERROR [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: ERROR IN CONTACTING RM. 
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=-1, maxMemory=1548
日志を見て申請の資源のメモリが-1であると言っていますが、どうやって-1ですか?
2016-10-26 09:01:47,618 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: mapResourceRequest:<memory:-1, vCores:1>
2016-10-26 09:01:47,658 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: reduceResourceRequest:<memory:-1, vCores:1>
確かに申請された資源メモリは-1であり、逆にhadoop jar方式で実行されているログを見て、そのログが見つかりました.
2016-10-26 09:03:25,434 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: mapResourceRequest:<memory:1024, vCores:1>
2016-10-26 09:03:25,471 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: reduceResourceRequest:<memory:1024, vCores:1>
は確かにメモリが-1ではないので、問題はこのようなものかもしれません.Intellij IDEAを使ってプログラムを提出する場合、設定が必要です.
conf = new Configuration();
            conf.setBoolean("mapreduce.app-submission.cross-platform", true);//            
            conf.set("fs.defaultFS", "hdfs://master:8020");//   namenode
            conf.set("mapreduce.framework.name","yarn"); //     yarn  
            conf.set("yarn.resourcemanager.address","master:8032"); //   resourcemanager
            conf.set("yarn.resourcemanager.scheduler.address", "master:8030");//        
            conf.set("mapreduce.jobhistory.address","master:10020");
では、アプリケーションのメモリサイズを設定できますか?パラメータを追加することで、
conf.set("mapreduce.map.memory.mb","1024");
は再び運行して、mapperが運行できることを発見しましたが、reducerはまだ実行できません.再度ログを見て、発見しました.
2016-10-26 09:09:46,259 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: mapResourceRequest:<memory:1024, vCores:1>
2016-10-26 09:09:46,287 INFO [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: reduceResourceRequest:<memory:-1, vCores:1>
は確かに申請のmapperの資源が変えられたので、再度reduceの申請メモリを修正します.
conf.set("mapreduce.reduce.memory.mb","1024")
は、既にIntellij IDEAにプログラムを提出することができることを発見した.
まとめ:Intellij IDEAなどを使ってMRプログラムを提出します.もし問題のようなエラーが発生したら、configrationに関連リソースの設定を追加することを提案します.
分かち合う
転載はブログの住所を明記してください.http://blog.csdn.net/fansy1990