淘宝分布式大数据及实时流数据技术架构_第1页
淘宝分布式大数据及实时流数据技术架构_第2页
淘宝分布式大数据及实时流数据技术架构_第3页
淘宝分布式大数据及实时流数据技术架构_第4页
淘宝分布式大数据及实时流数据技术架构_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淘宝分布式大数据及实时流数据技术架构提纲• 背景• 目标• 传统方案与业界进展• 设计理念(重点)• 技术架构• 要点• 例子• 系统边界• 计划背景• 应用背景–

数据量急剧增加–

Web

1.0

web

2.0,

publicego

net–

电子商务、移动互联网、移动支付–

欺诈、风控对海量交易实时性–

用户体验的个性化和实时性–

由点到面•

实时搜索、个人实时信息服务、SNS等背景• 技术背景MapReduce、Dryad等全量/增量计算平台–

S4、Storm等流计算框架CEP以及EDA模型Pregel等图计算模型传统方案与业界进展• 传统方案–

MAPREDUCE:HDFS加载,存储LOCALITY(容错性),顺序IO,存储HDFS, 单输入,单输出独立数据Di Latency(i)输入输入计算过程下载Mapshuffle输出独立数据DnlatencyLatency(n)reduceMapreduce

JobIProcess

JobHadoop之于实时• 问题(hadoop本质是为全量而生)–

任务内串行–

重吞吐量,响应时间完全没有保证–

中间结果不可见,不可共享–

单输入单输出,链式浪费严重–

链式MR不能并行–

粗粒度容错,可能会造成陷阱–

图计算不友好–

迭代计算不友好图计算• MapReduce为什么不适合图计算?–

迭代–

边的量级远大于节点• 图计算特点–

适应于事件机制,规模大(边),但单条数据不大–

很难分布式(locality、partition,一直都是难点)–

容错性Google

Pregel•

本质上还是全量•

中间结果不可见超步过多(IProcess)Pregel

vs.

IProcess图计算IProcess

乱序执行,避免了不必要的超步

实时图计算,图计算注定慢,但是效果的可以渐显。迭代计算• 特点–

结构固定• 本质Update• 方案–

传统MR模型,hadoop效率太低HaloopIprocess0.4实时计算业界进展S4–

2010年底,Yahoo,0.3,windowtodo业界界进进展展•Storm:2011.9,twitter,业界进进展‐Storm系统边边界S4、Storm–只能处处理“独立”的流数数据–无法处处理““复杂杂”事事件(condition),需要要用户户handle复杂的的条件件–不能很很好的的适用用于大大部分分需要要相关关数据据集执执行计计算算和流流数据据保序序的实实时场场景–容错性性较差差–集群无无法动动态扩扩展业界进进展•其它StreamBaseBorealisStreamInsightPercolatorHbasecoprocessorPregeldremel–…设计理理念负责任任(Condition)–MapReduce本质上上保证证了Reduce触发的的条件件,即即所所有map都结束束(但但这点点很容容易被被忽视视)。。–实时计计算Condition很容易易被忽忽略。很多只只是考考虑了streaming,而没没有考考虑Condition。实时(Streaming)成本(Throughput)•有所为为有所所不为为–通用计计算框框架,,用户组组件只只需关关心业业务逻逻辑。–涉及到到业务务逻辑辑统统统不做做。设计理理念•举例–实时JOIN(后面有有具体体代码码)在storm(不考考虑Condition)框架架下,,实现join,需需要用用户代代码自自己hold条件,,判断条条件,进而触触发join后的逻逻辑处处理。。但在在我们们的设设计理理念下下,这些condition完全可可以抽抽象为为复杂杂完备备事件件模型,所所以作作为通通用系系统应应该提提供condition的通用用功功能,,用户只只需进进行配配置而而不是是编码码就可可以完成condition,那么么实时join在iprocess体系下下,用户无无需编编码处处理condition,而只只需处处理join后的的逻辑辑。IProcess•通用的的分布布式流流数据据实时时与持持续计计算平平台–有向图图模型型•节点为为用户户编写写的组组件、边为为事件件–触发器器模式式–完备事件驱驱动的的架构构,定定制复杂完完备事件条条件–支持相相关集集计算算和Reduce时数据据集生生成(k‐mean)–树存储储模型型,支持不不同级级别定定制不不同一一致性性模型型和事事务务模型型–可扩展展的编编程模模型•提出并并支持持树型型实时MR和增量/定时MRIProcess•通用的的分布布式流流数据据实时时与持持续计计算平平台–持续与AdHoc计算(endpoint)–微内核核+组件系系统(系统级级组件件+用户组组件)–多任务务服务务化,,任务务沙箱箱,优优先级级,任务务调度度–两级容容错::应用用级和和系统统级,,运算算时动动态扩扩容–系统级级组件件系统统:实实时join、二级级索引引、倒倒排表表、物化视视图图、counter…–分布式式系统统的容容错,,自动动扩展展,通通讯,,调度度–保序…IProcess•基础的的运行行系统统–引入CEP规则引引擎模模块((RPM),类类似hive与MR–引入数数据集集控制制(用用于机机器学学习)),BI–引入类类SQL语言,,DSL引擎–引入图图计算算模型型逻辑模模型持续计计算Ad‐HocQuery–不可枚枚举用户搜搜索(online),DBSQL•持续计计算–计算相相对固固定、、可枚枚举–数据流流动SQL、MRIProcess整体架架构整体拓拓扑运行过过程•三个步步骤–简单事事件发发射(分布式)–复杂事事件完完备性性判断断(集集中式式、分分布式式)•分布式式事务务–尽量避避免((机制制保证证)–强事务务(MVCC)、逻逻辑事事务、弱事事务–触发下下一个个环节节IProcess的存储储•树结构构的存存储–不同的的一致致性和和事务务模型型•区分实实时数数据与与其它它数据据的存存储•两级容容错–应用级级和系系统级级•运算时时动态态扩容容•保序Latency、throughput、可靠靠性–动态tradeoffIProcess的存储储MR模型的的本质质Reduce(key,valueList,context)实现STCacheStrategy接口QStore:持久久化存存储。。IProcess的存储储‐amber与MR容错性性的区区别::应用用级体体现在在amber,系统统级体体现在在st与gtIProcess的存储储‐GlobalTableHbase维护分分支Segment分裂策策略Coprocessor沙箱类Redis接口–容量规规划–剥离行行事务务YahooOmidIProcess要点回回顾•完备事件模模型–基础模模型:触发器器模式式•可扩展展的编编程模模型(类似于HIVE与hadoop的关系)Spark(类似storm,完全全的流流处理理,无condition)Dumbo(实时时MapReduce框架))Graphcomputing(实时时pregel)SQL:HiveIProcess要点回回顾•树状存存储•事务模模型–逻辑事事务–弱事务务–强事务务•运行时时扩容容•系统,,应用用量级级容错错•保序应用场场景特特点•响应时时间:实时–毫秒级级别((子图图)–秒级别–分钟级别别•图复杂度度–节点简单单且重、图复杂–节点简单单但轻、、图复杂杂–节点复杂杂但轻、图简单–节点复杂杂且重、、图简单单应用场景景特点•语言C++、Java、ShellSQL–规则DSL•模型–触发器、简单事件、实时MR、图计算–…应用架构构Howtouse?•使用IProcess需要准备备什么?–组件集–配置(有向图,,事件)–拓扑Howtouse?Ademo•简化的资资讯实时时搜索实时搜索索用户API简介•系统级((高级接接口)STCacheStrategyLogicalConflictResolverLazyConflictResovlerIUserDefinedConditionISeedGeneratorIPartitioner用户API简介•应用级IProcess原生IProcessModule(JobContext)SparkEventProcessor(EventContext)Dumbo(实时Mapreduce)MapperPreparerReducerMerger–使用MapperContext、ReducerContext等系统API简介•重要接口和类类TableStrategyStorageStrategySegmentNameMappingSegment。SequencedSegmentTimedSegmentNameMappingRecordDumbo例子•代码直接复用用,效果大不不一样•例子(实时,中间结结果可见)wordCount(与全量mapreduce区别在于:dumbo下的wordcount,实时reduce结果是可见的的,即整个计算结果中间间可被用户访访问)–访问记录一次map、多次reduceSQL执行K‐mean聚类实时join•代码见下页Dumbo例子•实时join代码(join好好一条输出一一条)classMemberMapper:publicMapper{public:voidmap(conststring&key,constRecordPtrvalue,MapperContextPtrcontext){context‐>add(value‐>get_field("member_id").toString(),value,"member");}}classProductMapper:publicMapper{public:voidmap(conststring&key,constRecordPtrvalue,MapperContextPtrcontext){context‐>add(value‐>get_field("member_id").toString(),value,"product");}}Dumbo例子•实时join代码(reduce触发的条件件在配置文文件中,即相同joinkey的a数据和b数据都ready(condition),系统才会实时调用reduce-大家可以比较较在storm下实现实实时join的的代码)int32_treduce(stringkey,map<string,RecordIterator>taged_value_iterator,ReducerContextcontext){stringtag_a=“member";stringtag_b=“product";RecordIteratoriterator_a=taged_value_iterator.find("A")‐>second;RecordIteratoriterator_b=taged_value_iterator.find("B")‐>second;RecordPtrrecord_a=iterator_a.begin();while(record_a){RecordPtrrecord_b=iterator_b.begin();while(record_b){Recordresult=record_a‐‐>join(record_b);context‐>add(result);//生成成join的结结果果record_b=iterator_b.next();}record_a=iterator_a.next();}}触发发器器模模式式例例子子•SNS推荐荐系系统统–用户户将将公公司司名名修修改,引发发推推荐荐的实时变化化–某用用户户增增加加一一个个好好友友会会引引发发对对自自己己和和对对别别人人的的推推荐荐变变化化–实时时人人立立方(删除除关关系系)风控控CEP–离线线风风险险控控制制–在线线风风险险控控制制系统统边边界界•目前前的的问问题题–跨语语言言–吞吐吐量量–易用用性性–服务务化化,,云云??•边界界–计算算可可枚枚举举–计算算可可加加–依赖赖相相关关集集较较小小•建模模介于于BSP与DOT之间间Runtime的的executeplan优优化化目标标•打造造平平台台–实时时计计算算–持续续计计算算–Iprocess将专专注注于于完完备备事事件件机机制制。。•只提提供供最最基基本本的的功功能能,提供供高高度度可可定定制制的的接接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论