Я настроил кластер hadoop2 и могу отправить пример задания wordcount с помощью команды hadoop jar. Теперь я хочу объединить кластер hadoop с веб-приложением java, что означает, что я могу отправить в кластер задание, чей jar-файл уже существует в HDFS.
Мой вопрос:
1. Должен ли я настроить среду hadoop на моем веб-сервере?
2. Должен ли я настроить среду hadoop в своем коде приложения Java?
3. Есть ли официальное руководство по удаленной регистрации в apache?
Я новичок в hadoop, я использую hadoop 2.9.2.
Я просто знаю код о примере wordcount, и я упаковываю исходный код в jar, используя maven в windows, но я все еще не могу запустить его, используя "hadoop jar", ошибка - "Exception in thread" main "java .lang.ClassNotFoundException: WordCount ". Теперь я понятия не имею об этом.
Вот мой код:
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.3.100:9000");
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.hostname", "192.168.3.100");
// conf.set("mapreduce.jobtracker.address", "192.168.3.100:9001");
conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
conf.set("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());
// conf.set("yarn.application.classpath", "$HADOOP_CONF_DIR,"
// +"$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,"
// +"$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,"
// +"$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,"
// +"$YARN_HOME/*,$YARN_HOME/lib/*,"
// +"$HBASE_HOME/*,$HBASE_HOME/lib/*,$HBASE_HOME/conf/*");
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path("/zhangke/data/data.txt"));
FileOutputFormat.setOutputPath(job, new Path("/output"));
System.exit(job.waitForCompletion(true) ? 0 : 1);
Я очень хочу разобраться, спасибо!