EasyMR并行架构技术
一个并行计算软件框架
基于此框架的软件可以运行在多台计算机组成的计算集群上,并且每个计算机的计算任务也是多线程方式并行进行的,对于处理复杂的业务和巨量数据时非常用于。
有着MapReduce血统的任务调度监控中心
EasyMR的作业会由Mgr平台根据Key集切分成若干个数据集,通过RTP通信协议分配到计算Cell上,Mgr同时负责监控Cell上运行情况。
任务脚本管理运行管理平台
支持基于C#语言的任务执行脚本,所有脚本会基于TaskBase类,会在Key集之前发送到Cell计算单元,编译并等待执行,整个过程简单方便,尤其适合基于数据库技术的企业类大数据处理任务
部署实施简单
整个框架是基于.NET Framework2.0开发,绿色不需要任何安装和复杂配置,相对与Hadoop简直可以用轻松来形容,可以让任何一个程序员或者IT短时间内快速搭建起属于自己的并行计算框架。
开发简单
整个框架没有使用特有的脚本语言,普通程序员不需要再去学习相对陌生的语法或者函数,现在使用C#,未来会扩展到JAVA语言,不需要了解复杂的MR算法,只要知道Key集切分规则和原理,并行计算特点和一些注意事项就可以。
与现有系统集成简单
本系统既可以以独立程序方式调度运行,也提供类库方式直接集成到现有的业务系统中,现有系统几乎不需要什么大的改动就可以完成巨量数据或复杂业务处理
基于数据库处理
现有的并行框架基本是基于文件系统,对于一个开发团队的首要任务是处理海量的数据库数据,EasyMR不需要对于存储的复杂理解,程序员既可以使用数据库的同步复制来分担数据库读写压力,也可以一次读完,计算机集群计算完成后再同步或一次性写入数据库,程序只要知道完成情况并读取计算结果,同时未来也支持实时返回计算结果。
计算单元逻辑清晰
整个框架的设计是基于企业应用,例如统计报表,数据计算处理,其中统计逻辑和计算处理逻辑剥离出来就是计算单元的处理逻辑,只要简单业务分析可以完成此项工作。
可以编写灵活实用脚本
虽然框架也提供了数据传输功能,但主要负责的是业务逻辑计算部分,在计算过程中可以灵活使用数据库和结果来更好的计算业务逻辑,甚至是原有系统中计算逻辑可以直接经过简单处理就可以变为计算脚本
计算单元优化
计算机处理集群里的每台计算机的计算CPU不同而配置不同的并行任务处理数量,也可以根据CPU使用率动态管理计算单元并行处理数量。
采用RTP通信协议
RTP协议是实时传输控制协议简称,在大数据传输,实时传输控制和管理上优势明显,可以最大程度降低通信开销,提高系统稳定性。
处理流程
框架设计
部署推荐方案
实践之日志分析。 技术选型与架构 异步日志收集服务{可集群}(GroupCo) logstash(统一处理) elasticsearch(索引、存储) 异步api返回处理结果(GroupCo) ui展示(前端) GroupCo在中间担任日志收集与日志结果返回的角色。利用异步特性,很好的应对上报日志时较高的并发。
架构与设计 设计模式 重构 技术选型 特性 可用性 性能 包大小 方法数 文档 技术支持 UI架构模式 MVC MVP MVVM 研发工具 集成开发环境 Android Studio Sublime Text 版本控制系统 svn git gitlab github mercurial 调试工具 ADB DDMS Stetho LeakCanary ClassyShark Postman mark
系统架构能力 基本理论 扩展性设计 可用性设计 可靠性设计 一致性设计 负载均衡设计 过载保护设计 灾难恢复和备份 协议设计 二进制协议 文本协议 接入层架构设计 DNS 轮询 动静态分离 静态化 反向代理 LVS F5 CDN 逻辑层架构设计 连接池 串行化技术 影子 Master 架构 批量写入 配置中心 去中心化 通讯机制 同步与异步 MQ Cron RMI RPC 数据层架构设计 缓存优化
主要内容:一、往期回顾,二、百亿流量的高并发技术挑战,三、计算与存储分离的架构,四、自研纯内存SQL计算引擎,五、MQ削峰以及流量控制,六、数据的动静分离架构,七、阶段性总结,八、下一步展望一、往期回顾 上篇文章《为什么有些看起来很厉害的技术高手,设计的架构都很垃圾?》,主要聊了一下将单块系统重构为分布式系统,以此来避免单台机器的负载过高。同时引申出来了弹性资源调度、分布式容错机制等相关的东西。 这篇文章我们继续来聊聊这个系统后续的重构演进过程,先来看下目前的系统架构图,一起来回顾一下。 二、百
理论基础 概念 多微合适 非代码函数 非重写时间 适合团队最重要 独立业务属性 全功能团队 进程隔离 服务运行在独立的进程中 轻量级通信 协议跨平台 格式语言无关 独立性 独立开发 独立测试 独立部署 本质 服务作为组件 围绕业务组织团队 产品驱动而非项目驱动 技术多样性 业务数据独立 基础设施自动化 演进式架构 优点 按需伸缩 独立部署 业务独立 技术多样性 缺点 1. 运维成本高 环境配置(P
技术面 3.22 32min 自我介绍 SpringBoot 怎么改打包格式 内置的服务器有哪些 Mybatis-plus 中分页底层是什么 如果数据量特别大,limit 不好用了怎么办 你们项目 Redis 是怎么用的 鉴权是用的 拦截器 还是 AOP 讲一下 拦截器 和 AOP 的区别 怎么做到在一次 Web 请求中,打包一份用户数据并能在全局获取 上面说的是用 Spring 的实现方式,面试