Класс не найден в работе Hadoop
У меня есть работа по уменьшению карты, которая получает информацию от DocumentDB. Я добавил файлы jar в директорию lib в своем исходном коде, а также использовал -libjars при запуске задания. но я все еще получаю ошибку класса not found для класса в файле jar. Вот некоторая часть моей программы водителя
public class MapReduceDriver extends Configured implements Tool {
public static void main(String[] args) throws Exception {
int res = ToolRunner.run(new Configuration(), new MapReduceDriver(), args);
System.exit(res);
}
@Override
public int run(String[] args) throws Exception {
Configuration conf = this.getConf();
....
При использовании -libjars я однажды помещал необходимые файлы jar в локальный драйвер и один раз в hdfs, но ни один из них не работал. Как я могу убедиться, что -libjars работает?
постскриптум Я использую двухузловой кластер HDInsight (работает в Microsoft Azure).
Вот сообщение об ошибке, которое я получаю
Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.microsoft.azure.documentdb.hadoop.DocumentDBInputFormat not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1961)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:174)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:726)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
Caused by: java.lang.ClassNotFoundException: Class com.microsoft.azure.documentdb.hadoop.DocumentDBInputFormat not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1867)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1959)
... 8 more