C++ Hadoop 2.6 java.lang.nullpointerexception
我正在尝试运行wordcount示例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.
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();
//---把它分成几个字---
向量 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洗牌
我也得到了同样的错误,添加上述两个属性解决了问题