Light_rtdc 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Light_rtdc 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 国产
提 交 者 taotao2011
适用人群 未知
收录时间 2016-04-07

软件简介

框架说明

Light_drtc是一个轻量级分布式实时计算框架,它可以帮助你快速实现自定义的实时计算平台。它主要参考当前流行的实时计算框架Storm的 任务分发和Spark Streaming的Mini-Batch处理思想设计,设计目的是为了降低当前大数据时代的分布式实时计算入门门槛,方便初中级学者上手,快速实现企业所 需计算实时性要求比较高的业务逻辑。它本身可以做为独立的分布式实时计算平台存在,也可以作为其它项目的基础类库存在。

代码包结构

Light_drtc采用Java8开发,整个项目可以分为3部分:实时数据收集、任务管理和任务计算三部分,三者结合,共同完成完整的分布式实时计算系统。

---"src/main/java": 框架主体包

---"src/main/resources": 框架主体包所需配置文件

---"src/test/java": 框架测试包,也是框架三个核心部分作为一个整体,完成的一个分布式实时计算系统的实例说明。

---"src/test/resources": 框架测试包所需配置文件

使用说明

首先下载Light_drtc,进入根目录, 使用命令:mvn package,

打包成“light_drtc-${current_version}.jar”,引入即可。

Light_drtc只提供分布式实时计算的核心开发功能,其中实时日志解析、任务计算落地实现都需要开发者自行定义。以下3个部分为开发者的开发步骤,且为3个独立进程。

1. 数据流实时收集部分,每隔${mqDoBatchTimer}秒批量提交给任务管理节点,至于实时收集数据MQ,框架中已经有了RabbitMQ和Kafka两种实现,如果开发者要使用其它的,则自行开发。框架中也有RabbitMQ作为消费者的实用用例。
   具体开发时,如果学者选用Kafka或RabbitMq,则可以直接使用框架中已实现"org.light.rtc.mq.KafkaMqCollect.java"或"RabbiMqCollect.java",直接实例化,调用相关方法即可。
     实例可以参考:src/test/java/org/light/rtc/test/KafkaRabbitMqCollect.java
   具体开发时,如果选用其他MQ,可以参考“org.light.rtc.mq.KafkaMqCollect.java”实现,继承org.light.rtc.base.MqConsumer.java, 对所接受的每条数据,代码中调用“this.mqTimer.parseMqText(userId, logText)”即可。 
     实例可以参考:src/test/java/org/light/rtc/test/MqCollect.java

2. 任务管理部分:对于所接受的来自实时数据流的数据,每隔${rtcPeriodSeconds}秒,将所收集的数据,统一加工成每条信息类似: "{uid:设备ID或通行证ID,data:{view:{docIds},collect:{docIds}}}"形式的信息列表。
   具体开发可以参考src/test/java/org/light/ldrtc/test/AdminNodeServer.java, 这里需要开发者需要自行实现实时数据流的日志解析,需要实现“org.light.rtc.base.StreamLogParser.java”接口,具体参考实例src/test/java/org/light/ldrtc/parser/LogParser.java

3. 任务计算部分: 这部分主要依靠开发者自定义实现,实现时,需要实现“org.light.rtc.base.JobStatsWindow.java”相关接口,这里建议大家参考JDK本身提供的Fork/Join并行计算框架,以更高效率的利用服务器资源,开发实例入口参考“src/test/java/org/light/ldrtc/test/JobNodeServer.java”,具体实现参考“org.light.ldrtc.jober.JobService.java及StatsTask.java”。

框架配置文件说明

需要在实际中根据实际需要修改,这里需要说明的是,框架本身负责计算任务管理及资源协调。这里重点说明几个配置属性。 rtc_conf.properties

mqDoBatchTimer=3 #实时收集的数据流每隔3秒批量提交给任务管理节点
rtcPeriodSeconds=7 #任务管理节点中每隔7秒将所收集的数据统分发给任务计算节点
atomJobBatchNum=100  #默认每个任务计算节点在${rtcPeriodSeconds}秒内所处理的最大元数据条数(比如单个用户规定时间内的所有行为聚合的数据)
minJobBatchNum = 20  #默认每个任务计算节点在${rtcPeriodSeconds}秒内所处理的最小元数据条数
adminNodeHosts = 127.0.0.1:16401,127.0.0.1:16406  #给数据收集节点使用,这里规定使用2个任务管理节点,双主模式。
adminNodePort = 16401   #任务管理节点启动服务所在端口,可以根据需要修改。同台服务器,2个任务管理节点服务端口必须区分
adminNodeId=1       #后期功能扩展使用,任务管理节点每个都会扩展一个热备,主:1,从:0
minThreadNum=10      #服务端进程,最小线程数
maxThreadNum=10000   #服务端进程,最大线程数
jobNodeHosts=127.0.0.1:1641,127.0.0.1:1642,127.0.0.1:1643  #任务计算节点配置,供任务管理节点管理,作者建议每个任务管理节点至少包含3个任务计算节点实例
jobNodePort=16401   #任务计算节点启动服务所在端口,可以根据需要调整。
delayTaskDir = /Users/a/delayTask/   #任务计算节点不能及时处理的延迟的聚合后的用户行为数据,按时间片段命名写入指定目录,根据需要自定义
delayTaskFileSurfix = .txt      #延迟执行的元数据文件后缀命名
maxDelayTaskNum = 6         #任务管理节点默认只能接受的未及时执行的元数据组的个数,超过此限制,每个元数据组一个文件写入指定目录
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2013/06/08 16:53

light

using UnityEngine; using System.Collections; public class dengguang : MonoBehaviour { public float hSbarValue1; public float hSbarValue3; public Light light; void OnGUI() { hSbarValue1 = GUILayout.HorizontalScrollbar(hSbarValue1, 1.0F, 0.0F, 8.0F); GUILayout.Label("light.intensity"); light.intens...

0
0
发表了博客
2014/12/26 16:37

Sharp Light

人生总有多个第一次,而第一次总是最能冒出火花的经历,我最想听到的是那灿烂的"pow" 几个网址,用来学习,摩擦摩擦。

2
1
发表了博客
2013/01/26 22:19

Light Menu Bar

实现一个简单的菜单栏,即在菜单栏放很多按钮,当多个按钮无法同时显示时,可以用手指划动菜单栏,之前隐藏的按钮就会显示出来。 Code4App编译测试,测试环境:Xcode 4.3, iOS 5.0。 转载:http://www.adobex.com/ios/source/details/00000233.htm...

0
0
发表了博客
2013/01/28 15:20

flash light

打开和关闭设备的闪关灯。可用作手电筒功能。 代码来源地址有文章详细说明整份代码的原理。 Code4App编译测试,测试环境:Xcode 4.3, iOS 5.0 以上。 转载:http://www.adobex.com/ios/source/details/00000525.htm

0
0
发表了博客
2019/08/23 23:20

openapi and light-4j

light-4j项目支持openapi规范,本文介绍一下参照相关demo做的上传功能。 openapi.yaml,按照规范编写内容,/openapi/swagger可以查看对应的swagger页面,Authorize可以使用README.en.md里面的Bearer token handler.yml,路由/openapi/*给OpenapiHandler处理,OpenapiEndpointSource路由所有http方法 MyJwtVerifyHandler...

0
0
发表了博客
2018/07/19 18:14

Codeforces | CF1000B 【Light It Up】

蒟蒻第二篇题解。。。 比赛的时候写这道题MLE了qwq。。根据CF的赛制我也没敢再交第二次。。 简单讲一下思路好了~~(假装是dalao)。。根据题意要加一个或者不加新的点。。如果加一个新的点意味着从这个点往后的时间里状态都会反转(亮->灭&&灭->亮)。。则加入点后的亮灯时间=(点后总时间-点后原本亮灯时间)。。根据三个样例...

0
0
发表于服务端专区
09/28 00:16

在dbcolinux上安装cozy-light

本文关键字:js个人云存储,cozy,node-legcay和谐模式 在前面的《appstacks》,《apps》系列文章中,我们大力涉及到带存储支持的云程序,与语言选型放一起,我们写了py的2个(seafile,odoo),php的2个(owncloud,mo...

0
0
发表了博客
2018/04/09 21:26

ZOJ 4020 Traffic Light

Traffic Light Time Limit: 1 Second Memory Limit: 131072 KB DreamGrid City is a city with intersections arranged into a grid of rows and columns. The intersection on the -th row and the -th column can be described as , and two intersections and are connected by a road if . At each intersection sta...

0
0
发表了博客
2018/06/06 11:29

Mvvm Light Toolkit 入门

原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和MarkDown的语法。 下面的附件里有这篇博客里用到的Demo工程,我已经加上了比较详细的注释,可以帮助理解代码,欢迎点击查看。 MVVM简介 MVVM(M...

0
0
发表了博客
2019/08/03 00:33

Light-Head R-CNN

[TOC] 论文信息 Zeming Li, Chao Peng, Gang Yu, Xiangyu Zhang, Yangdong Deng, Jian Sun. Light-Head R-CNN: In Defense of Two-Stage Object Detector. open source. https://arxiv.org/abs/1711.07264 Introduction 作者称two stage模型的第一步生成proposal的部分为body, 第二步识别proposal的部分为head. 而目前的...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
25 收藏
分享
返回顶部
顶部