大数据实训Day02

MapReduce

简介

  1. MapReduce在处理数据的时候,首先将数据进行切片(Split),切片本质上是一种逻辑划分(logical split),实际上实在划分任务量
  2. 划分完任务量之后,每一个Split都会交给一个MapTask来处理

组件

序列化

  1. 在MapReduce中,需要对数据进行序列化,MapReduce中单独提供了对应的序列化形式 - 需要被序列化的对象对应的类实现接口Writable
  2. MapReduce在序列化过程中不允许属性为null
  3. 案例:统计每一个人花费的总流量(文件:flow.txt)
  4. 练习:获取每一个人的平均成绩(文件:score.txt)

分区

  1. 分区的作用是对数据进行分类
  2. 在实际过程中,需要根据指定的需求来对数据进行分类,指定不同的分区
  3. 案例:按地区,来分别统计每一个人花费的总流量(文件:flow.txt)
  4. MapReduce需要对分区来进行编号,编号从0开始依次向上递增
  5. 每一个分类需要对一个单独的ReduceTask,有几个分类,就需要产生对应个数的ReduceTask
  6. 练习:按月份,统计每一个人的总成绩(目录:score)

排序

  1. MapReduce会自动的数据的键来进行排序,默认是按照自然序
  2. 如果需要指定排序规则,那么键的位置上的元素对应的类必须实现Comparable,考虑对数据进行序列化,所以实现WritableComparable
  3. 案例:对之前的总流量来进行降序排序
  4. 练习:按照月份升序排序,如果是同一个月,则按照利润来降序排序(文件:profit.txt)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部