#java #hadoop #mapreduce #hadoop-yarn
#java #hadoop #mapreduce #hadoop-yarn
Вопрос:
Я настроил кластер hadoop2 и могу отправить пример задания wordcount, используя команду «hadoop jar». Теперь я хочу объединить кластер hadoop с веб-приложением Java, что означает, что я могу отправить задание, файл jar которого уже существует в HDFS, в кластер. Мой вопрос: 1. Должен ли я настроить среду hadoop на моем веб-сервере? 2. Должен ли я настраивать среду hadoop в коде моего приложения Java? 3.Is есть официальное руководство по удаленной отправке в apache?
Я новичок в hadoop, я использую hadoop 2.9.2.
Я просто знаю код о примере wordcount, и я упаковываю исходный код в jar с помощью maven в Windows, но я все еще не могу запустить его с помощью «hadoop jar», ошибка «Исключение в потоке «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);
Я действительно хочу разобраться с этим, спасибо!
Комментарии:
1. Пожалуйста, покажите всю свою
hadoop jar
команду.2. @BenWatson команда имеет ошибку «hadoop jar word-count-1.0-SNAPSHOT.jar Количество слов /zhangke/data/data.txt /output1», я упаковываю word-count-1.0-SNAPSHOT.jar через maven
3. Вам не хватает полного пакета для WordCount
4. @BenWatson Спасибо! Это действительно работает! И я действительно хочу знать решение трех вопросов, которые я упомянул выше, вы знаете ответ? Наиболее важным является то, как запустить задание, файл jar которого существует в hdfs.