【问题标题】:heap space issues in hadoop cluster while running map reducer program from command prompt从命令提示符运行 map reducer 程序时 hadoop 集群中的堆空间问题
【发布时间】:2016-08-30 10:20:39
【问题描述】:

我正在运行示例 map reduce 作业,该作业将 .csv 文件作为 hdfs 的输入,并通过 java map 程序插入 hbase。我尝试使用以下选项来避免 java 堆错误。

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

但是我在运行 map reduce 程序时遇到了 Java Heap 问题。

2016-08-30 12:47:26,764 INFO [main] org.apache.hadoop.conf.Configuration.deprecation:mapred.skip.on 已弃用。相反,使用 mapreduce.job.skiprecords 2016-08-30 12:50:57,663 致命 [main] org.apache.hadoop.mapred.YarnChild:运行子错误:java.lang.OutOfMemoryError:Java 堆空间 在 com.google.protobuf.ByteString.copyFrom(ByteString.java:194) 在 com.google.protobuf.CodedInputStream.readBytes(CodedInputStream.java:324) 在 org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue.(ClientProtos.java:9144) 在 org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue.(ClientProtos.java:9089) 在 org.apache.hadoop.hbase.protobuf.generated.ClientProtos$MutationProto$ColumnValue$QualifierValue$1.parsePartialFrom(ClientProtos.java:9198) 在 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);

我正在使用带有三节点集群的 hadoop 2.x,每个节点有 32GB。我的输入文件大小是 831MB。请帮助我这是什么问题以及如何解决。

【问题讨论】:

    标签: hadoop mapreduce hbase hadoop2


    【解决方案1】:

    你可以像这样增加配置

    configuration.set("mapreduce.child.java.opts", "-Xmx6553m");
    configuration.set("mapreduce.map.memory.mb", "8192");
    

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      相关资源
      最近更新 更多