ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-07-13 19:05:48  阅读:184  来源: 互联网

标签:数据分析 11 telecom 通话 int 通话记录 callLog NULL id


文章目录

前言

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

技术框架

大数据所需要完成的是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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有