Light_rtdc 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Light_rtdc 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Light_rtdc 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 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.intensity=hSbarValue1; hSbarValue3 = GUILayout.HorizontalScrollbar(hSbarValue3, 1.0F, 0.0F, 8.0F); GUILayo...

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

Sharp Light

Sharp Light https://github.com/ GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features. Unlike Git, which is strictly a command-line tool, GitHub provides a web-based graphical interface and desktop as well as mobile integration. It also provides access co...

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,浏览器遇到非简单请求时会额外发送OPTIONS请求,并且不会携带请求头Authorization,因此security略过此类请...

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

Codeforces | CF1000B 【Light It Up】

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

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 stands a traffic light. A traffic light can only be in one of the two states: 0 and 1. If the traffic l...

0
0
发表了博客
01/06 14:43

light-rtc: 理念与实践

在与同行交流过程中,发现很多同行对 WebRTC 改动太多,导致无法升级 WebRTC 版本。而 WebRTC 开源社区的快速迭代,让他们感到欣喜又焦虑:开源社区的迭代效果,是不是超过了他们对 WebRTC 的优化效果?我们针对特定场景优化 WebRTC 时,怎么紧跟 WebRTC 开源社区通用的优化? 作者:阿里云智能技术专家 熊金水 理念 简言之,把 WebRTC 作为 Framework 使用,而不是 Library,即:WebRTC 仓库轻量化,核心模块插件化。 详细的,...

0
0
2020/09/28 00:16

在dbcolinux上安装cozy-light

__本文关键字:js个人云存储,cozy,node-legcay和谐模式__ 在前面的《appstacks》,《apps》系列文章中,我们大力涉及到带存储支持的云程序,与语言选型放一起,我们写了py的2个(seafile,odoo),php的2个(owncloud,mongopress),js的一个davros。并一直扩展它们的意义,认为它是一种小可视为与common storage based webapp合作(ocwp ownnote,mongpress,odoo),大可扩展为paas,webos的东西(sandstorm,cloudwall),在《设想:cloud...

0
0
发表了博客
2012/10/31 14:30

Resetting warning light on AIX

Method 1, as root, run 'diag' then select 'Task Selection' then select 'Identify and Attention Indicators' then select 'Set ALL Identify Indicators to NORMAL' or selectivly as required. Method 2, /usr/lpp/diagnostics/bin/usysfault -t /usr/lpp/diagnostics/bin/usysfault -s normal Reference: http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/resetting-warning-light-on-rs6000-2934655...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
24 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部