Zebra项目:分析、实施与测试

Zebra项目是一个电信运营商用户上网数据分析应用程序。它涉及日志数据处理、Maven管理、Avro序列化、Zookeeper协调服务等多个技术层面。项目分为ZebraProject、zebra_jobtracker、zebra_engine1_01、zebra_engine1_02和zebra_engine2等模块,实现了数据收集、逻辑切片、RPC通信和数据库落地等功能。项目测试包括启动各引擎和检查数据库中统计结果的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

第一部分 Zebra项目概述

一、Zebra项目介绍

二、日志数据结构分析

三、数据以| 分割后,每个数据项的含义

四、Zebra项目整体架构

(一)技术架构

(二)工程架构

五、Zebra业务说明

1、数据项含义

2、应用大类说明

3、应用小类说明

4、业务字段处理逻辑

5、zebra业务说明

六、Zebra项目设计思想

1、单机思想

2、四个进程职责

3、重要的分区思想

第二部分 Zebra项目实施过程

一、创建Maven项目ZebraProject

1、添加四个子模块

2、修改ZebraProject的pom.xml文件,添加依赖和插件

3、在main目录创建源目录avro,添加协议文件和模式文件

4、利用avro插件基于模式文件和协议文件生成相应的类和接口

5、配置全局的属性文件env.properties

6、创建GlobalEnv类定义全局变量,读取env.properties属性文件

二、zebra_jobtracker模块V1.0

1、修改pom.xml文件,添加对ZebraProject的依赖

2、编写FileCollector类

3、编写FileToBlock类

4、编写StartJobTrakcer类——利用线程池启动线程

三、zebra_engine1_01模块V1.0

1、修改pom.xml文件,添加对父工程ZebraProject的依赖

2、编写ownenv.properties文件

3、编写ownenv类,定义变量并且读取ownenv.properties属性文件

4、编写ZkConnectRunner,负责一级引擎节点创建

5、创建StartEngine1_01类,利用线程池启动ZkConnectRunner线程

6、创建rpc服务器端接收jobtracker客户端传递过来的任务

四、zebra_jobtracker模块V1.1

1、创建ZkConnectRunner类,获取两个一级引擎的节点数据(ip和port)

2、创建RpcCilentRunner线程类,负责向一级引擎发送文件切片

3、修改StartJobTracker类,添加发送切片的线程

4、测试jobtracer能否将任务发送到一级引擎

五、zebra_engine1_02模块V1.0

1、修改pom.xml文件,添加对项目ZebraProject的依赖

2、创建ownenv.properties文件

3、编写OwnEven类,读取ownenv.properties属性文件

4、编写ZkConnectRunner,负责一级引擎节点创建

5、创建RpcFileSplitImpl类,实现RpcFileSplit接口

6、创建RpcServerRunner类

7、创建StartEngine1_02类,利用线程池启动ZkConnectRunner线程和RpcServerRunner线程

8、测试一级引擎两个节点能否收到jobtracker发送的文件切片

9、修改zebra_jobtracker模块的RpcClientRunner

10、测试一级引擎两个节点能否收到jobtracker发送的全部文件切片

六、zebra_engine1_01模块V1.1

1、创建MapperRunner类,负责读取文件切片,按|分割、封装成zebra业务对象

2、修改ZkConnectRunner类,添加两个静态方法

3、修改StartEngine1_01类

4、创建RpcClientRunner,负责向二级引擎发送处理后的map

5、修改StartEngine1_01类,将RpcClientRunner线程添加到线程池

七、zebra_engine1_02模块V1.1

1、修改ZkConnectRunnet类,添加两个静态方法

2、创建MapperRunner类

3、创建RpcClientRunner类

4、修改StartEngine1_02类

5、测试一级引擎能否收到jobtracker发送的全部文件切片

八、二级引擎zebra_engine2模块

1、修改pom.xml文件,添加对父工程ZebraProject的依赖

2、创建ZkConnectRunner,负责创建二级引擎节点

3、创建OwnEnv类

4、创建ReducerRunner类

5、创建RpcSendHttpAppHostImpl类

6、创建RpcServerRunner

7、创建数据库连接池配置文件c3p0-config.xml

8、创建日志属性文件log4j.properties

9、创建ZebraDB类,让二级引擎处理的数据落地到数据库

10、创建StartEngine2类,通过线程池来启动线程

11、创建数据库zebra,导入建表脚本

九、测试整个Zebra项目

1、启动二级引擎StartEngine2

2、启动两个一级引擎StartEngine1_01和StartEngine1_02

3、启动StartJobTracker

4、切换到StartEngine1_01的控制台

5、切换到StartEngine1_02的控制台查看输出信息

6、切换到StartEngine2的控制台查看输出信息

7、打开数据库zebra,查看是否有17980条记录在表里

十、课后作业


第一部分 Zebra项目概述


评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值