当前位置:   article > 正文

Hadoop小案例_hadoop课程设计小项目案例

hadoop课程设计小项目案例
 

目的:本案列的目的是统计500w条数据被搜索使用的次数

 

由于数据包无法在这上传,所以数据无法给你们,你们可以自己搞一些数据自己学习学习!

 

 

1.根据命令 hadoop fs -put ./sogou.500w.utf8 / 把500w这个包移动到hdfs 根目录下,一般(/)表示

 

 

2.

 

 

2.1 在shell命令中的运行格式:hadoop jar jar包  包名.类名  文件的路径
 (首先你要把java代码打成jar包,当然还有一点文件的路径这需要一个不重复的路劲),如:
hadoop jar  abc.jar  cn.xdl.test.SogouUID  /count02 
2.2 或者先在eclipse上运行,如下图

 

 

3.代码如下:

  1. package cn.xdl.reduce;
  2. import org.apache.hadoop.fs.Path;
  3. import org.apache.hadoop.io.IntWritable;
  4. import org.apache.hadoop.io.Text;
  5. import org.apache.hadoop.mapreduce.Job;
  6. import org.apache.hadoop.mapreduce.Mapper;
  7. import org.apache.hadoop.mapreduce.Reducer;
  8. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  9. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  10. class SogouMap extends Mapper<Object, Text, Text, IntWritable> {
  11.  //
  12. public void map(
  13. Object key,
  14. Text value,
  15. org.apache.hadoop.mapreduce.Mapper<Object, Text, Text, IntWritable>.Context context)
  16. throws java.io.IOException, InterruptedException {
  17. // 20111230133301 a5e535dc9cbadc510ee515982c817a0f 356期藏机图 3 3
  18. // http://www.yibocai.com/ZMTM/201112/265336.html
  19. String line = value.toString();
  20. String[] ss = line.split("\t");
  21. context.write(new Text(ss[1]), new IntWritable(1));
  22. };
  23. }
  24. class SogouReduce extends Reducer<Text, IntWritable, Text, IntWritable> {
  25. public void reduce(
  26. Text key,
  27. java.lang.Iterable<IntWritable> values,
  28. org.apache.hadoop.mapreduce.Reducer<Text, IntWritable, Text, IntWritable>.Context context)
  29. throws java.io.IOException, InterruptedException {
  30. int sum = 0;
  31. for(IntWritable count : values){
  32. sum+=count.get();
  33. }
  34. context.write(key, new IntWritable(sum));
  35. };
  36. }
  37. public class SogouUID {
  38. /**
  39. * @param args
  40. */
  41. public static void main(String[] args) throws Exception {
  42. String inpath = args[0];
  43. String outpath = args[1];
  44.        //创建作业实例
  45. Job job = Job.getInstance();
  46. job.setJobName(SogouUID.class.getName());
  47. // 打jar包
  48. job.setJarByClass(SogouUID.class);
  49. // 设置处理Map/Reduce阶段的类
  50. job.setMapperClass(SogouMap.class);
  51. job.setReducerClass(SogouReduce.class);
  52. //设置reduce的任务个数
  53. job.setNumReduceTasks(3);
  54. // 设置最终输出key/value的类型
  55. job.setOutputKeyClass(Text.class);
  56. job.setOutputValueClass(IntWritable.class);
  57. // 设置输入/输出路径
  58. FileInputFormat.addInputPath(job, new Path(inpath));
  59. FileOutputFormat.setOutputPath(job, new Path(outpath));
  60. // 提交作业
  61. job.waitForCompletion(true);
  62. }
  63. }

4.查看运行后的情况,可使用命令Hadoop fs -cat /count02/path*

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/824829
推荐阅读
相关标签
  

闽ICP备14008679号