0
단일 노드에서 맵 축소 작업을 테스트했지만 작동 중이지만 이제 원격 클러스터에서 실행하려고합니다. ClassNotFoundExcepton을 얻고 있습니다.ClassNotFoundException 클러스터에서 HBase 맵 축소 작업을 수행 할 때
java.lang.RuntimeException: java.lang.ClassNotFoundException: Pivot$Mapper
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:857)
...
은 내가 부족 것이 있습니다 :
public class Pivot {
public static class Mapper extends TableMapper<ImmutableBytesWritable, ImmutableBytesWritable> {
@Override
public void map(ImmutableBytesWritable rowkey, Result values, Context context) throws IOException {
(map code)
}
}
public static class Reducer extends TableReducer<ImmutableBytesWritable, ImmutableBytesWritable, ImmutableBytesWritable> {
public void reduce(ImmutableBytesWritable key, Iterable<ImmutableBytesWritable> values, Context context) throws IOException, InterruptedException {
(reduce code)
}
}
public static void main(String[] args) {
Configuration conf = HBaseConfiguration.create();
conf.set("fs.default.name", "hdfs://hadoop-master:9000");
conf.set("mapred.job.tracker", "hdfs://hadoop-master:9001");
conf.set("hbase.master", "hadoop-master:60000");
conf.set("hbase.zookeeper.quorum", "hadoop-master");
conf.set("hbase.zookeeper.property.clientPort", "2222");
Job job = new Job(conf);
job.setJobName("Pivot");
job.setJarByClass(Pivot.class);
Scan scan = new Scan();
TableMapReduceUtil.initTableMapperJob("InputTable", scan, Mapper.class, ImmutableBytesWritable.class, ImmutableBytesWritable.class, job);
TableMapReduceUtil.initTableReducerJob("OutputTable", Reducer.class, job);
job.waitForCompletion(true);
}
}
나는이 작업을 실행하려고 할 때 수신하고 오류는 다음과 같다 : 다음과 같이 내 코드 구성되어있다? 매퍼를 찾는 데 어려움이있는 이유는 무엇입니까?
어떻게 작업을 호출 할 내에서 실행 테스트 할 수 있습니다, 항아리를 구축하고
hadoop jar myjar.jar ...
을 사용하여 명령 줄에서 실행 해 나는 실행 해요 –을 (사용 된 전체 명령 줄을 제공하시기 바랍니다) 그것은 일식에서 – user2623855