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

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

作者: 尚硅谷教育 | 来源:发表于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