基于zookeeper和storm的车载流式计算框架讲解

上传人:最**** 文档编号:116613277 上传时间:2019-11-16 格式:PPTX 页数:41 大小:3.22MB
返回 下载 相关 举报
基于zookeeper和storm的车载流式计算框架讲解_第1页
第1页 / 共41页
基于zookeeper和storm的车载流式计算框架讲解_第2页
第2页 / 共41页
基于zookeeper和storm的车载流式计算框架讲解_第3页
第3页 / 共41页
基于zookeeper和storm的车载流式计算框架讲解_第4页
第4页 / 共41页
基于zookeeper和storm的车载流式计算框架讲解_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《基于zookeeper和storm的车载流式计算框架讲解》由会员分享,可在线阅读,更多相关《基于zookeeper和storm的车载流式计算框架讲解(41页珍藏版)》请在金锄头文库上搜索。

1、基于zookeeper和storm的车载 流式计算框架 摘要 n 案例背景 n 日本第一车载SAAS平台 n 案例需求 n 数据量剧增,吞吐量剧增 n 车载机数量剧增+数据库连接数剧增 n 任务分布不均导致实时性无法满足 n 案例技术方案 n 案例技术方案概览 n 数据存储平台MongoDB n 实时计算平台Storm n 集群协调ZooKeeper n 最佳实践 n MongoDB介绍及最佳实践 n Storm介绍及最佳实践 n ZooKeeper介绍及最佳实践 n 架构不足及经验分享 案例背景1业务背景 n 业务场景 物流公司 校车安全 油气公司 n 主要功能 运行数据记录 监视驾驶 违规

2、警告 绩效考评 报表输出 危险地带 实时监控 日本市场占有率第一,积极拓展国内业务 WebAPP中间件层硬件层 通信层分析计算层1 分析计算层2 Web Server Write Write Write Read Write Polling Read RMDB PrimitiveLog 基本 Bs_WorkShee t Bs_TimeChart Bs_FreqData Bs_DigiData 集計 Master 設定 動態管 理 RMDB PrimitiveLo g 基本 Bs_WorkShee t Bs_TimeChart Bs_FreqData Bs_DigiData 集計 Master

3、設定 動態管理 RMDB PrimitiveLog 基本 Bs_WorkSheet Bs_TimeChart Bs_FreqData Bs_DigiData 集計 Master 設定 動態管理 案例背景2技术背景 市场竞争激烈,维持第一的保证PAAS 一 数据量剧增+吞吐量剧增 2013年 车辆数:10000台 数据量:3000w/天 吞吐量:80M/S () 車両数:10000 Commn Server Analysis Server Stastic Server 分時日月年 bs_primitiveLogWRW-62,3403,722,15729,763,261654,722,3977,8

4、56,6448,198 bs_WorkSheet-RWRW8,422504,8754,032,87488,704,7821,064,448,769 bs_TimeChart-RWRW10,873600,8744,804,430105,600,1001,267,200,296 bs_FreqData-WR45027,0964216,7846,480,54077,760,054 bs_DegitachoData-W-1,01060,079480,10010,560,006126,720,190 数据特性 Heavy Write Heavy Read Past Useless 2015年 车辆数:1

5、00000台 数据量:30000w/天 吞吐量:800M/S :车载机发送数据最高频率2次/秒,每次发送4KB数据。10000台车载机的峰值为10000*2*4KB =80000KB=80M/S :从这个数据可以算出实际平均吞吐量是62340*4KB/60 = 4M/s, 但是固定时间点车载机会同时向云端发送运行数据 () 此表抽出 通信中间件分析集计中间件DB bs_primitiveLog bs_WorkSheet bs_TimeChart bs_FreqData bs_DegitachoData 设置信息 写原始日志表车载机数据 二 连接数剧增+客户剧增 DB1 DB2 DB3 DBn

6、通信服务器与各个业 务DB建立长连接 目前的SAAS平台已经 有600租户 每个通信服务器要与 600个DB建立数据库连 接 归一化迫在眉睫 NoSQL 10W车辆时: 1.需要17台通信服务器 2.峰值:10W*8KB/S=800MB/S 数据量 长尾来袭 现在有600个客 户公司,未来? ? 三 分析计算程序任务不均匀+实时性不够 DB1 DB2 DB3 DBn Analysis Process Analysis Process Analysis Process Analysis Process n 现状 同一公司的车辆数据分布在同一数据库 分析计算进程与DB一对一地分析数据 n 问题 若

7、一个公司有很多辆车,那么一个分析计算进程应付不过来,无法分散计算 若一个公司车辆很少,那么该公司对应的分析进程将没有任务,浪费服务器资源 因为分析进程的缓慢执行,车辆的实时运行数据无法反映到客户端 案例技术方案概览 案例技术方案概览 通信集群消息队列+存储计算集群数据库集群协调集群应用集群 接受连接 负载均衡 通信直连 事件网络 消息发布 消息订阅 数据库操作 存储消息 负载均衡 - 数据分片 主从备份 负载均衡 无模式 数据分解 数据分析 数据统计 日志分析 数据存储 模式隔离 私有仓库 节点管理 任务分配 状态维护 Open API Browser ipad Phone LibeventK

8、afka MongoDB StormSQL ServerZooKeeperIIS、WCF 数据存储平台MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最 丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可 以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有 点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而 且还支持对数据建立索引。 它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有: 面向集合存储,易存储对象类型的数据 模式自由

9、 支持动态查询 支持完全索引,包含内部对象 支持查询 支持复制和故障恢复 使用高效的二进制数据存储,包括大型对象(如视频等) 自动处理分片,以支持云计算层次的扩展性 支持RUBY,PYTHON,JAVA,C+,PHP等多种语言。 文件存储格式为BSON(一种JSON的扩展) 可通过网络访问 数据量剧增和连接数剧增的解决办法 n 高频读写表抽出 n 1公司:1DB模式N公司:1DB DB1 DB2 DB3 DBn DB1 DB1 DB2 DB3 DBn 选择MongoDB的原因 n 增删改查操作最接近SQL,迁移容易,并可为其他业务使用 n 支持数据的自动和手动分片,横向扩展容易 n 性能测试结

10、果接近预期,够用即可,不用追求完美 n 支持数据复制、故障转移、横向扩展,基本符合RAS需求 CAP定理性能 关系 不大 2个mongos,3个分片,非安全插入: 单独执行时: 写线程10个并发时,每秒37000次写入 读线程4个并发时,每秒43000次读取 同时执行时: 写线程10个并发时,每秒达25000次写入 读线程4个并发时,每秒达36000次读取 :CPU 3.2GHz MEM 16G 千兆网卡 MongoDB最佳实践 n 逻辑部署和物理部署 n 存储结构设计 n 定期数据清除 Shards Load Balance Config server Replica sets mongos

11、mongosmongos mongod mongod mongod mongod mongod mongod mongod mongod mongod mongod mongod mongod C 2mongod C1 mongod C3 mongod client MongoDB的部署逻辑架构 client 192.168.0.2192.168.0.3192.168.0.4192.168.0.5192.168.0.6 Shard1(master) Shard2(master)Shard3(master)Shard1(slave)Shard1(arbiter) Shard2(slave) Sh

12、ard3(slave)Shard1(slave)Shard3(slave)Shard2(arbiter) Shard3(arbiter) Shard1(arbiter)Shard2(arbiter)Shard2(slave)Shard3 (arbiter) Config server1Config server2mongosmongosmongos Shard1:192.168.0.2,192.168.0.5,192.168.0.4,192.168.0.3,192.168.0.6(arbiter) Shard2:192.168.0.3,192.168.0.5,192.168.0.2,192.1

13、68.0.4,192.168.0.6(arbiter) Shard3:192.168.0.4,192.168.0.5,192.168.0.3,192.168.0.2,192.168.0.6(arbiter) Config Server1:192.168.0.2 Config Server2:192.168.0.3 Mongos:192.168.0.4,192.168.0.5,192.168.0.6 MongoDB部署物理架构 存储数据结构设计 “v”: “DTS19982221” “r”: “t” : “2013-11-14T08:17:00.016Z“ “d” : ”xxxxxxxxxxxx

14、xxxxxx” “o” : “yyyyyyyyyyyyyyyyyy” , “t” : “2013-11-14T08:19:38.342Z“ “d” : ”xxxxxxxxxxxxxxxxxx” “o” : “yyyyyyyyyyyyyyyyyy” “s”: “zzzzz” 名字段要短 db.vehicle.save(“v”:” DTS19982221 ”, “r“: “t“: 201399988772, “d”:”xxxxxxxxxxxxxxxx”,”o”:”yyyyyyyyyyy” db.vehicle.find(“v”:” DTS19982221 ”, “r“: “$elemMatch“:

15、 “t“:“$gte“: 201309898876251728 定期数据清除 n 清理程序(MonDC)运行在ZooKeeper集群上,自身无状态 n 清理程序(MonDC)监视MongoDB内存使用量 n 清理程序(MonDC)检测删除过期数据 实时计算平台Storm 与Hadoop类似,Storm为分布式实时计算提供了一组通用原语。可被用于“流处理”之 中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm也可 被用于“连续计算”, 对数据流做连续查询,在计算时就将结果以流的形式输出给用户。 它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。 Storm的主工程师Nathan Marz表示:Storm可以方便地在一个计算机集群中编写与扩展 复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消 息都会得到处理,而且它很快在一个小集群中,每秒可以处理数以百万计的消息。更 棒的是你可以使用任意编程语言来做开发。 Storm的主要特点如下: 简单的编程模型 可以使用各种编程语言 容错性 水平扩展 可靠的消息处理 快速 Storm为什么号称实时计算系统? n 计算基于内存,较之磁盘有数量级之差 n 使用消息队列做数据传输,速度比数据库快很多 n 使用流式计算思想,数据可以源源不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号