编程题1:HDFS分布式文件系统根目录里面有文件hdfs.txt,现要求使用org.apache.hadoop.fs.FileSystem类将hdfs.txt下载至windows系统C盘根目录下,按要求补充如下代码。......public class HDFS_CRUD {......// 下载文件@Testpublic void DownLoadFileToLocal() throws IOException{//设置下载的源路径srcPath (1)= new Path((2));//设置下载的目标路径dstPath dst = (3)Path("C:/");//下载文件fs.(4)(src, dst);//关闭资源fs.(5)();}}
编程题2:Windows系统的C盘根目录有文件windows.txt,现要求使用org.apache.hadoop.fs.FileSystem类将windows.txt上传至HDFS根目录,按要求如下补充代码。......public class HDFS_CRUD {......// 上传文件@Testpublic void UpLoadFileToHDFS() throws IOException{//设置上传的源路径(1)src = new Path("C:/hdfs.txt");//设置下载的源路径Path dst = new Path((2));//上传文件fs.(3)(src, (4));//关闭资源fs.(5)();}}
编程题3:现要求使用org.apache.hadoop.fs.FileSystem类在HDFS分布式文件系统创建目录,重命名目录,删除目录,按要求如下补充代码。......public class HDFS_CRUD {......// 创建,删除,重命名目录@Testpublic void testMkdirAndDeleteAndRename() throws Exception {// 创建目录/x/y/zfs.(1)(new Path("/x/y/z"));// 创建目录/a/b/cfs.mkdirs(new Path((2)));// 重命名目录,将目录/a重名为a_newfs.(3)(new Path("/a"), new Path((4)));// 删除目录/x,如果是非空目录,第二个参数必须给值truefs.(5)(new Path("/x"), true);}}
编程题4:使用并行计算框架MapReduce实现单词统计,按要求如下补充代码。......// WordCountMapper类public class WordCountMapper extends Mapper {@Overrideprotected void map(LongWritable key, Text value, Context context) throws Exception {// 数据类型转换为StringString line = value.(1)();// 行内容按照分隔符逗号切割String[] words = line.split((2));// 遍历数组,标记<单词,1>for (String word : words) {// Map阶段处理的数据发送给Reduce阶段作为输入数据context.(3)(new Text(word), new IntWritable(1));}}}......// WordCountReducer类public class WordCountReducer extends Reducer {@Overrideprotected void reduce(Text key, Iterable value, Context context) throws Exception {//定义一个计数器int count = 0;//遍历一组迭代器,累加单词的总次数for ((4) iw : value) {count += iw.get();}// 把Reduce阶段处理的数据作为输出数据context.write(key, new IntWritable((5)));}}......// WordCount类......public class WordCountDriver {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new (6)();// 创建配置对象Job job = Job.getInstance(conf);// 创建带配置的Job作业对象job.setJarByClass(WordCountDriver.class);// 装载主类job.(7)(WordCountMapper.class);// 装载WordCountMapperjob.setReducerClass(WordCountReducer.class);// 装载WordCountReducer//装载map阶段的输入类job.setMapOutputKeyClass((8));job.setMapOutputValueClass(IntWritable.class);//装载reducer阶段输出类job.(9)(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.setInputPaths(job, "/input");// 指定源路径FileOutputFormat.setOutputPath(job, new Path("/output"));// 指定目标路径// 提交jobboolean res =(10).waitForCompletion(true);System.out.println(res ? "job完成!" : "job未完成!");}}