其他分享
首页 > 其他分享> > 大数据实战-callLog项目(通话记录数据分析)之项目介绍

大数据实战-callLog项目(通话记录数据分析)之项目介绍

作者:互联网

文章目录

前言

学完大数据离线部分的技术,老师就布置了一个综合性的小项目;自己勉强算是完成了,便整理成博客记录一下,方便以后复习,也希望对同样学习大数据的朋友们有所帮助。

技术框架

大数据所需要完成的是Mysql之前的环节,由于只学了离线,所以不使用Storm/Spark;而在HBase之后有两种选择,一是利用Hive进行数据分析,二是HBase的MR,我选择的是MR。
在这里插入图片描述
综上所述,本次博客整理的技术路线为CallLog->flume->Kafka->HBase->Mysql,当然Hadoop和Zookeeper一直在背后默默付出着。

流程介绍

数据生产

由于无法获得真实数据,所以这一部分由自己编写java程序放到Linux下定时生成数据。

数据采集

在自己虚拟机里面,flume的吞吐量是够用的,能够直接用flume对接HBase;但是对于企业而言,常常不够所以会用多个flume对接一个Kafaka;为了熟悉一下这个环节,我也试着用flume对接Kafaka。

数据分析

运用MR,业务实际上和官方示例的wordcount差不多,都是求和,只不过这里是某一时间维度的通话次数之和与通话时长之和。更具体而言就是求出指定用户某年、某月、某日的通话次数之和通话时长之和。

数据可视化

这一环节是直接使用老师给的web项目,连上保存结果的数据库实现的。

Meaven依赖

我先把用到的Meaven全列在下面,先准备上,之后就不用一一设置。

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.20</version>
		</dependency>

		<dependency>
			<groupId>joinery</groupId>
			<artifactId>joinery-dataframe</artifactId>
			<version>1.9</version>
		</dependency>
		<dependency>
			<groupId>com.github.binarywang</groupId>
			<artifactId>java-testdata-generator</artifactId>
			<version>1.1.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.17</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
		<dependency>
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-clients</artifactId>
			<version>0.11.0.3</version>
		</dependency>
		
		<dependency>
			<groupId>jdk.tools</groupId>
			<artifactId>jdk.tools</artifactId>
			<version>1.8</version>
			<scope>system</scope>
			<systemPath>E:\MyWork\MyDevelopmentTools\java\jdk1.8.0_171\lib\tools.jar</systemPath>
		</dependency>
		
		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-server</artifactId>
			<version>1.4.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-client</artifactId>
			<version>1.4.5</version>
		</dependency>

结果预览

表结构

最终结果mysql表的结构如下,可以先看看,之后还会提到

db_telecom.tb_contacts

用于存放用户手机号码与联系人姓名。

备注 类型
id 自增主键 int(11) NOT NULL
telephone 手机号码 varchar(255) NOT NULL
name 联系人姓名 varchar(255) NOT NULL

db_telecom.tb_call

备注 类型
id date contact 复合主键(联系人维度 id,时间维度 id) varchar(255) NOT NULL
id date dimension 时间维度 id int(11) NOT NULL
id contact 查询人的电话号码 int(11) NOT NULL
call sum 通话次数总和 int(11) NOT NULL DEFAULT 0
call duration sum 通话时长总和 int(11)

db_telecom.tb_dimension_date

备注 类型
id 自增主键 int(11)
year 年,当前通话信息所在年 int(11)
month 月,当前通话信息所在月,如果按照年来统计信息,则month 为-1。 int(11) NOT NULL
day 日,当前通话信息所在日,如果是按照月来统计信息,则day为-1。 int(11) NOT

web端绘制的结果

不过这次我并没有实现mysql之后的可视化环节。
在这里插入图片描述

标签:数据分析,11,telecom,通话,int,通话记录,callLog,NULL,id
来源: https://blog.csdn.net/weixin_44112790/article/details/95718199