2016-08-30 4 views
0

hdfsから入力として.csvファイルを取り込み、javaマップ・プログラムを通じてhbaseに挿入するサンプル・マップ・リダクション・ジョブを実行しています。私は、Javaヒープエラーを避けるために、以下のオプションを試してみました。マップ・レデューサー・プログラムをコマンド・プロンプトから実行しているときにhadoopクラスターでヒープ・スペースが発生する

configuration.set("mapreduce.map.java.opts", "-Xmx5g"); 
configuration.set("mapreduce.map.memory.mb", "-1"); 

マップ還元プログラムを実行中にJavaヒープの問題が発生しています。

2016-08-30 12:47:26,764 INFO [main] org.apache.hadoop.conf.Configuration.deprecation: mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords 2016-08-30 12:50:57,663 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: Java heap space at com.google.protobuf.ByteString.copyFrom(ByteString.java:194) at com.google.protobuf.CodedInputStream.readBytes(CodedInputStream.java:324) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue.(ClientProtos.java:9144) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue.(ClientProtos.java:9089) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue$1.parsePartialFrom(ClientProtos.java:9198) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue$1.parsePartialFrom(ClientProtos.java:9193)

Driver program configuration as below : 
Job job = new Job(configuration);  
job.setJarByClass(HbaseTest.class);  
job.setJobName("Data loading to HBase Table::"+TABLE_NAME);  
job.setInputFormatClass(TextInputFormat.class);  
job.setMapOutputKeyClass(ImmutableBytesWritable.class);  
job.setMapperClass(HbaseTestMapper.class);  
job.setNumReduceTasks(0); 
FileInputFormat.addInputPaths(job, args[0]);   
FileSystem.getLocal(getConf()).delete(new Path(outputPath), true);  
FileOutputFormat.setOutputPath(job, new Path(outputPath));  
job.setMapOutputValueClass(Put.class); 

私は3つのノードクラスタでのHadoop 2.xのを使用していますが、各ノードは、32ギガバイトを持っています。私の入力ファイルのサイズは831MBです。問題と解決方法を教えてください。

答えて

0

あなたは

configuration.set("mapreduce.child.java.opts", "-Xmx6553m"); 
configuration.set("mapreduce.map.memory.mb", "8192"); 
のような構成を増やすことができます
関連する問題