zoukankan      html  css  js  c++  java
  • 手机号流量统计---Mapreduce项目分析

    文档显示:

       

     每行依次是 ~手机号~上行流量~下行流量

    需求分析:

     需要统计各自的手机号,及上行、下行、总流量

    具体做法:

    1.定义map输入输出类型

     通常情况下map输入key-value就是longwritable,text

     我们知道Map读取的过程为:读一行返回一个key-value对,每调用一行就执行一次map方法。而输出value应该是每行的上行流量和下行流量以及总流量,我们想到了对象。输出value可以为bean----mr程序中,可以使用自定义的类型作为mr的输出数据类型,但是前提是实现hadoopwritable序列化机制

    2.创建bean---

       2.1定义属性(注意:long类型

      自行通过setget   /  lambok+data注解 使用属性

      2.2构造方法

      2.3重写序列化write和反序列化方法

       序列化

         

                       

      反序列化(注意:先序列化的先反序列化

         

    3.map阶段

     应该是手机号作为key,上行流量+下行流量作为value

    小技巧:

         1.如果line中间数据有丢失,可以正着+倒着配合获取字段)

         2.构造函数参数和中间设置要机灵点儿哦

            

     3.1map完成

          

      3.2.但是由于每次调用map方法都需要new,这样会增大垃圾回收量,所以优化提前new出所需对象,整个过程只需要重新set

    4.reduce阶段

        Map的输出为reduce的输入,设置统计参数

       

    5.job阶段

       Job相当于是模板方法,大量代码都是一致的。所以我们可以找到之前的mapreduce的方法进行 黏贴修改代码、重新导包 即可。

    6.重写toString 避免输出文件中是对象不便于观察

    接下来我们可以在本地跑一下,拍桌子散伙!

                -------补作业了!

  • 相关阅读:
    从零开始实现微信机器人
    简单易用的字符串模糊匹配库Fuzzywuzzy
    社会工程学框架
    数据结构【基础知识点总结】
    Go数组
    python generator与coroutine
    Flask开发系列之数据库操作
    【渗透技巧】资产探测与信息收集
    Appium Desktop Inspector 安卓真机配置(Windows)
    JAVA Random 随机类
  • 原文地址:https://www.cnblogs.com/Amyheartxy/p/9325219.html
Copyright © 2011-2022 走看看