网站建设好弄吗高新手机网站建设价格
web/
2025/10/6 7:06:56/
文章来源:
网站建设好弄吗,高新手机网站建设价格,网站页面那个图怎么做,手机怎么自己制作游戏文章目录 MapReduce 编程#xff1a;join操作和聚合操作一、实验目标二、实验要求及注意事项三、实验内容及步骤 附#xff1a;系列文章 MapReduce 编程#xff1a;join操作和聚合操作
一、实验目标
理解MapReduce计算框架的分布式处理工作流程掌握用mapreduce计算框架实现… 文章目录 MapReduce 编程join操作和聚合操作一、实验目标二、实验要求及注意事项三、实验内容及步骤 附系列文章 MapReduce 编程join操作和聚合操作
一、实验目标
理解MapReduce计算框架的分布式处理工作流程掌握用mapreduce计算框架实现Map端的本地聚合操作掌握MapReduce编程的map端join操作
二、实验要求及注意事项
给出每个实验的主要实验步骤、实现代码和测试效果截图。对本次实验工作进行全面的总结分析。所有程序需要本地测试和集群测试给出相应截图。建议工程名类名或包名等做适当修改显示个人学号或者姓名
三、实验内容及步骤
实验任务1使用MapReduce编程如果涉及到join操作一般使用的是reduce端的join但如果其中一个文件较小可以将其添加到分布式缓存当中去在map阶段时每一个map task开始运行前先从分布式缓存中取出此小文件在map方法中对数据进行join操作即map join操作。本实验使用的输入文件分别是uid-list和sogouuid-lis保存着搜索过“电影”的用户的UID比较小sogou是日志文件对于处于uid-list中的用户把他们在sogou日志文件中的uid及搜索关键词输出到HDFS。实现效果如图1和图2所示。 主要实现步骤和运行效果图
1进入虚拟机并启动Hadoop集群完成文件上传。 2启动Eclipse客户端新建一个java工程在该工程中创建package导入jar包完成环境配置依次创建包、Mapper类Reducer类和主类等 3完成代码编写。
JoinMap
package hadoop;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.io.*;public class WjwJoinMap extends MapperObject, Text, Text, Text{private MapString, Integer map new HashMapString, Integer();private Text uid new Text();protected void setup(Context context) throws IOException, InterruptedException{SuppressWarnings(resource)BufferedReader br new BufferedReader(new FileReader(uuid));String line null;while((linebr.readLine())!null){System.out.println(line);map.put(line.trim(), 1);}}protected void map(Object key, Text value, Context context) throws IOException, InterruptedException{String[] arr value.toString().split(\t);String keyword arr[2];if(arr[1]!null map.get(arr[1])!null){uid.set(arr[1]);context.write(uid, new Text(keyword));}}}JoinMain
package hadoop;import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.*;
import org.apache.hadoop.mapreduce.lib.output.*;public class WjwJoinMain {public static void main(String[] args) throws IOException, URISyntaxException, ClassNotFoundException, InterruptedException{if(argsnull || args.length!3){System.out.println(error);System.exit(0);}Job job Job.getInstance(new Configuration(), WjwJoinMain);job.setJarByClass(WjwJoinMain.class);job.setMapperClass(WjwJoinMap.class);job.setNumReduceTasks(0);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);Path path new Path(args[0]);String pathLink path.toUri().toString() #uuid;job.addCacheFile(new URI(pathLink));FileInputFormat.addInputPath(job, new Path(args[1]));FileOutputFormat.setOutputPath(job, new Path(args[2]));job.waitForCompletion(true);}}4测试程序并查看输出结果。 实验任务2 Map端本地聚合读取文本文件/home/zkpk/word.txt进行单词计数为了减少网络传输数据量且使用本地聚合不会影响最终结果在map端进行本地聚合。 主要实现步骤和运行效果图
1进入虚拟机并启动Hadoop集群完成文件上传。 2启动Eclipse客户端新建一个java工程在该工程中创建package导入jar包完成环境配置依次创建包、Mapper类Reducer类和主类等 3完成代码编写。
WordMap
package hadoop;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;import org.apache.hadoop.io.*;public class WjwWordMap extends MapperObject, Text, Text, IntWritable{public void map(Object key, Text value, Context context) throws IOException, InterruptedException{String arr[] value.toString().split( );for(String word:arr){context.write(new Text(word), new IntWritable(1));}}
}WordReduce
package hadoop;import java.io.IOException;import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.Reducer;public class WjwWordReduce extends ReducerText, IntWritable, Text, IntWritable{protected void reduce(Text key, IterableIntWritable values, Context context) throws IOException, InterruptedException{int sum 0;for(IntWritable val:values){sum val.get();}context.write(key, new IntWritable(sum));}}WordMain
package hadoop;import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;public class WjwWordMain {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException{if(argsnull || args.length!2){System.out.println(error);}Job job Job.getInstance(new Configuration(), WjwWordMain);job.setJarByClass(WjwWordMain.class);job.setMapperClass(WjwWordMap.class);job.setCombinerClass(WjwWordReduce.class);job.setReducerClass(WjwWordReduce.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.waitForCompletion(true);}}4测试程序并查看输出结果。 附系列文章
实验文章目录直达链接实验01Hadoop安装部署https://want595.blog.csdn.net/article/details/132767284实验02HDFS常用shell命令https://want595.blog.csdn.net/article/details/132863345实验03Hadoop读取文件https://want595.blog.csdn.net/article/details/132912077实验04HDFS文件创建与写入https://want595.blog.csdn.net/article/details/133168180实验05HDFS目录与文件的创建删除与查询操作https://want595.blog.csdn.net/article/details/133168734实验06SequenceFile、元数据操作与MapReduce单词计数https://want595.blog.csdn.net/article/details/133926246实验07MapReduce编程数据过滤保存、UID 去重https://want595.blog.csdn.net/article/details/133947981实验08MapReduce 编程检索特定群体搜索记录和定义分片操作https://want595.blog.csdn.net/article/details/133948849实验09MapReduce 编程join操作和聚合操作https://want595.blog.csdn.net/article/details/133949148实验10MapReduce编程自定义分区和自定义计数器https://want595.blog.csdn.net/article/details/133949522
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87794.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!