文件一 package hadooptext;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;/** * 基本上等于yarn集群(分配运算资源)的客户端 * 封装mr程序运行参数,指定jar包交给yarn * @author lws * */public class wordCountDriver {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();//传来了默认参数//启动参数封装为job对象Job job = Job.getInstance(conf);//程序一般经过打包之后运行,设置jar包所在目录//job.setJar("");写死路径//指定本程序jar所在的本地路径job.setJarByClass(wordCountDriver.class);//类一旦运行就可以找到类所在的路径//给job指定使用的mapper类job.setMapperClass(wordcountmapper.class);//给job指定使用的reduce类job.setReducerClass(wordcountreducer.class);//指定mapper输出数据类型job.setMapOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//指定reduce输出数据类型(最终输出数据类型)job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//指定job的输入文件目录(hdfs文件系统的目录)FileInputFormat.addInputPath(job, new Path(args[0]));//此处可以写死,也可以通过满函数的args 来传参 // 判断output文件夹是否存在,如果存在则删除 Path path = new Path(args[1]);// 取第1个表示输出目录参数(第0个参数是输入目录) FileSystem fileSystem = path.getFileSystem(conf);// 根据path找到这个文件 if (fileSystem.exists(path)) { fileSystem.delete(path, true);// true的意思是,就算output有东西,也一带删除 } //指定job输出结果所在目录(hdfs文件系统的目录)FileOutputFormat.setOutputPath(job, new Path(args[1]));//把job配置的参数,和job用的jar目录交给yarn,让yarn来运行//job.submit();//等待结果返回boolean result = job.waitForCompletion(true);System.exit(result?0:1);}}package hadooptext;import java.io.IOEx 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交