es-hadoop で mapreduce プログラムを使用して Elasticsearch に書き込もうとすると、この例外が発生します。Elasticsearch クラスターに既に存在するindex=employee および type=basicに書き込もうとしています。
私のスタックトレース:-
スレッド "main" org.elasticsearch.hadoop.EsHadoopIllegalArgumentException での例外: リソース ['es.resource'] (index/query/location) が org.elasticsearch.hadoop.util.Assert.hasText(Assert.java:30) で指定されていませんorg.elasticsearch.hadoop.mr.EsOutputFormat.init(EsOutputFormat.java:257) で org.elasticsearch.hadoop.mr.EsOutputFormat.checkOutputSpecs(EsOutputFormat.java:233) で org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs (JobSubmitter.java:266) org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139) org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) org.apache org.apache.ハドゥープ。security.UserGroupInformation.doAs(UserGroupInformation.java:1657) at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308) com.mstack.mapreduce.DIGDriver.main(DIGDriver.java:22) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43) で java.lang.reflect.Method.invoke(Method.java:497) で org.apache.hadoop.util.RunJar.run(RunJar.java:221) で org.apache. hadoop.util.RunJar.main(RunJar.java:136)com.mstack.mapreduce.DIGDriver.main(DIGDriver.java:22) の waitForCompletion(Job.java:1308) 62) org.apache.hadoop.util.RunJar.run(RunJar.java) で java.lang.reflect.Method.invoke(Method.java:497) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で:221) org.apache.hadoop.util.RunJar.main(RunJar.java:136) でcom.mstack.mapreduce.DIGDriver.main(DIGDriver.java:22) の waitForCompletion(Job.java:1308) 62) org.apache.hadoop.util.RunJar.run(RunJar.java) で java.lang.reflect.Method.invoke(Method.java:497) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で:221) org.apache.hadoop.util.RunJar.main(RunJar.java:136) で43) org.apache.hadoop.util.RunJar.run(RunJar.java:221) で java.lang.reflect.Method.invoke(Method.java:497) org.apache.hadoop.util.RunJar.main で(RunJar.java:136)43) org.apache.hadoop.util.RunJar.run(RunJar.java:221) で java.lang.reflect.Method.invoke(Method.java:497) org.apache.hadoop.util.RunJar.main で(RunJar.java:136)
ドライバークラス:-
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "es-hadoop");
job.setJarByClass(DIGDriver.class);
conf.set("es.nodes", "localhost:9200");
conf.set("es.port", "9200");
conf.set("es.resource", "employee/basic");
job.setNumReduceTasks(0);
job.setOutputFormatClass(EsOutputFormat.class);
job.setMapperClass(DIGMapper.class);
job.setMapOutputValueClass(MapWritable.class);
conf.setBoolean("mapreduce.map.speculative", false);
conf.setBoolean("mapreduce.reduce.speculative", false);
boolean status = job.waitForCompletion(true);
if (status) {
System.exit(0);
} else {
System.out.println("Job Failed : Some error!");
System.exit(1);
}