美文网首页
尚硅谷大数据技术之电信客服

尚硅谷大数据技术之电信客服

作者: 尚硅谷教育 | 来源:发表于2018-12-19 17:27 被阅读51次

    第2章 项目架构

    项目架构如图1所示


    image.png

    第3章 项目实现

    系统环境:

    表1

    |

    系统

    |

    版本

    |
    |

    windows

    |

    10 专业版

    |
    |

    linux

    |

    CentOS 6.8

    |

    开发工具

    表2

    |

    工具

    |

    版本

    |
    |

    idea

    |

    2017.2.5旗舰版

    |
    |

    maven

    |

    3.3.9

    |
    |

    JDK

    |

    1.8+

    |

    提示:idea2017.2.5必须使用maven3.3.9,不要使用maven3.5,有部分兼容性问题

    集群环境:

    表3

    |

    框架

    |

    版本

    |
    |

    hadoop

    |

    2.7.2

    |
    |

    zookeeper

    |

    3.4.10

    |
    |

    hbase

    |

    1.3.1

    |
    |

    flume

    |

    1.7.0

    |
    |

    kafka

    |

    2.11-0.11.0.0

    |

    硬件环境:

    表4

    | |

    hadoop102

    |

    hadoop103

    |

    hadoop104

    |
    |

    内存

    |

    4G

    |

    2G

    |

    2G

    |
    |

    CPU

    |

    2核

    |

    1核

    |

    1核

    |
    |

    硬盘

    |

    50G

    |

    50G

    |

    50G

    |

    3.1 数据生产

    此情此景,对于该模块的业务,即数据生产过程,一般并不会让你来进行操作,数据生产是一套完整且严密的体系,这样可以保证数据的鲁棒性。但是如果涉及到项目的一体化方案的设计(数据的产生、存储、分析、展示),则必须清楚每一个环节是如何处理的,包括其中每个环境可能隐藏的问题;数据结构,数据内容可能出现的问题。

    3.1.1 数据结构

    我们将在HBase中存储两个电话号码,以及通话建立的时间和通话持续时间,最后再加上一个flag作为判断第一个电话号码是否为主叫。姓名字段的存储我们可以放置于另外一张表做关联查询,当然也可以插入到当前表中。

    表5

    |

    列名

    |

    解释

    |

    举例

    |
    |

    call1

    |

    第一个手机号码

    |

    15369468720

    |
    |

    call1_name

    |

    第一个手机号码人姓名(非必须)

    |

    李雁

    |
    |

    call2

    |

    第二个手机号码

    |

    19920860202

    |
    |

    call2_name

    |

    第二个手机号码人姓名(非必须)

    |

    卫艺

    |
    |

    date_time

    |

    建立通话的时间

    |

    20171017081520

    |
    |

    date_time_ts

    |

    建立通话的时间(时间戳形式)

    | |
    |

    duration

    |

    通话持续时间(秒)

    |

    0600

    |

    3.1.2 编写代码

    思路:

    a) 创建Java集合类存放模拟的电话号码和联系人;

    b) 随机选取两个手机号码当作“主叫”与“被叫”(注意判断两个手机号不能重复),产出call1与call2字段数据;

    c) 创建随机生成通话建立时间的方法,可指定随机范围,最后生成通话建立时间,产出date_time字段数据;

    d) 随机一个通话时长,单位:秒,产出duration字段数据;

    e)****、将产出的一条数据拼接封装到一个字符串中;

    f)****、使用IO操作将产出的一条通话数据写入到本地文件中;

    新建module****项目:ct_producer

    pom.xml****文件配置:

    |

    <dependencies>

    <dependency>

    <groupId>junit</groupId>

    <artifactId>junit</artifactId>

    <version>4.12</version>

    <scope>test</scope>

    </dependency>

    </dependencies>

    |

    本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

    相关文章

      网友评论

          本文标题:尚硅谷大数据技术之电信客服

          本文链接:https://www.haomeiwen.com/subject/fpajkqtx.html