C++ Hadoop 2.6 java.lang.nullpointerexception

C++ Hadoop 2.6 java.lang.nullpointerexception,c++,hadoop,mapreduce,C++,Hadoop,Mapreduce,我正在尝试运行wordcount示例 class WordCountMapper : public HadoopPipes::Mapper { public: // constructor: does nothing WordCountMapper( HadoopPipes::TaskContext& context ) { } // map function: receives a line, outputs (word,"1") // to reducer.

我正在尝试运行wordcount示例

class WordCountMapper : public HadoopPipes::Mapper {
public:
  // constructor: does nothing
  WordCountMapper( HadoopPipes::TaskContext& context ) {
  }

  // map function: receives a line, outputs (word,"1")
  // to reducer.
  void map( HadoopPipes::MapContext& context ) {
    //--- get line of text ---
    string line = context.getInputValue();

    //--- split it into words ---
    vector< string > words =
      HadoopUtils::splitString( line, " " );

    //--- emit each word tuple (word, "1" ) ---
    for ( unsigned int i=0; i < words.size(); i++ ) {
      context.emit( words[i], HadoopUtils::toString( 1 ) );
    }
  }
};

class WordCountReducer : public HadoopPipes::Reducer {
public:
  // constructor: does nothing
  WordCountReducer(HadoopPipes::TaskContext& context) {
  }

  // reduce function
  void reduce( HadoopPipes::ReduceContext& context ) {
    int count = 0;

    //--- get all tuples with the same key, and count their numbers ---
    while ( context.nextValue() ) {
      count += HadoopUtils::toInt( context.getInputValue() );
    }

    //--- emit (word, count) ---
    context.emit(context.getInputKey(), HadoopUtils::toString( count ));
  }
};

int main(int argc, char *argv[]) {
  return HadoopPipes::runTask(HadoopPipes::TemplateFactory< 
                              WordCountMapper, 
                              WordCountReducer >() );
}
类WordCountMapper:PublicHadooppipes::Mapper{ 公众: //构造函数:什么都不做 WordCountMapper(HadoopPipes::TaskContext和context){ } //映射功能:接收一行,输出(字“1”) //到减速器。 void映射(HadoopPipes::MapContext和context){ //---获取文本行--- string line=context.getInputValue(); //---把它分成几个字--- 向量字= HadoopUtils::splitString(行“”); //---发出每个单词元组(单词“1”)--- for(无符号整数i=0;i()); } 我得到了这个错误

 java.lang.Exception: java.lang.NullPointerException    at
 org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
    at
 org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
 Caused by: java.lang.NullPointerException  at
 org.apache.hadoop.mapred.pipes.Application.<init(Application.java:104)
    at
 org.apache.hadoop.mapred.pipes.PipesMapRunner.run(PipesMapRunner.java:69)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)   at
 org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
    at
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)     at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745) 15/10/30 11:42:57 INFO
 mapreduce.Job: Job job_local1470785393_0001 running in uber mode :
 false 15/10/30 11:42:57 INFO mapreduce.Job:  map 0% reduce 0% 15/10/30
 11:42:57 INFO mapreduce.Job: Job job_local1470785393_0001 failed with
 state FAILED due to: NA 15/10/30 11:42:57 INFO mapreduce.Job:
 Counters: 0 Exception in thread "main" java.io.IOException: Job
 failed!    at
 org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836)  at
 org.apache.hadoop.mapred.pipes.Submitter.runJob(Submitter.java:264)
    at org.apache.hadoop.mapred.pipes.Submitter.run(Submitter.java:503)
    at org.apache.hadoop.mapred.pipes.Submitter.main(Submitter.java:518)
java.lang.Exception:java.lang.NullPointerException位于
org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
在
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
原因:java.lang.NullPointerException位于

org.apache.hadoop.mapred.pipes.Application.在mapred-site.xml中添加以下属性:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>map reduce_shuffle</value>
</property>

mapreduce.framework.name
纱线
在warn-site.xml中添加此属性:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>map reduce_shuffle</value>
</property>

纱线.节点管理器.辅助服务
映射减少\u洗牌
我也得到了同样的错误,添加上述两个属性解决了问题