我試圖做一個使用Json作爲輸入的Mapreduce作業。我在POM.xml中導入了JSON依賴項,並且Maven clean install正常運行。但是當我在Hadoop中運行Jar時,我得到「NoClassDefFoundError:org/json/JSONObject」 Mapper類錯誤。 (我也試圖與JSON的Java外部JAR,但它不工作NoClassDefFoundError:org/json/JSONObject - Hadoop MapReduce
這是我的測試映射類:
package com.andrew.hadoopNBA.NbaJob1;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.json.*;
public class PointsRankingMapper extends Mapper<Object, Text, Text, IntWritable> {
public void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
try {
JSONObject jsn = new JSONObject(value.toString());
System.out.println("printing JSON " + jsn);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
這是Maven的依賴性:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
任何想法?
這種依賴性似乎不再受支持 – AndryGP