阿里巴巴离线大数据处理平台概述提纲大数据时代阿里巴巴数据事业部离线大数据处理平台(ODPS)我们面临的主要问题ODPS部分功能概览结语大数据时代3大数据时代的挑战4•社交网络、用户行为、购买关系•企业内外IT系统的整合数据关联性•数据规模爆炸式增长•结构化与非结构化数据并存、噪声增多•组合离线、在线、流式等多项计算能力提供解决方案•在大数据上应用传统统计学和数据挖掘算法处理能力•用户隐私保护、商业数据泄漏、复杂的访问控制需求•企业发展的达摩克利斯之剑数据安全•如何利用大数据盈利•数据驱动的新业务模式与企业传统业务模式的冲突商业模式阿里巴巴的大数据产品探索淘宝贷款•解决小微企业贷款难的问题:–金额高–流程长–授信难–周期长•完全以数据驱动的产品•对既有数据进行二次挖掘•颠覆原有业务模式•规模优势6阿里巴巴大数据事业部离线存储与计算在线存储与计算实时计算流式计算任务调度与管理数据开发与数据可视化界面数据同步数据质量监控元数据管理安全与审计计量与计费服务化API&SDK算法库数据产品数据地图数据共享与合作7阿里巴巴离线大数据处理平台•ODPS(OpenDataProcessingService)•支持海量结构化数据的离线存储和计算•以RESTfulAPI的方式提供服务•基于阿里巴巴自主知识产权的分布式操作系统•支持高吞吐量的数据上传下载服务•支持SQL和存储过程•支持MapReduce、BSP编程框架•支持常用的矩阵运算和数据挖掘算法•支持多用户管理和基于ACL和policy的权限控制•基于ODPS可以打造完整的数据仓库解决方案我们面临的主要问题首先需要提供一个高效稳定的离线存储和计算引擎如何支撑5万、15万台以上的机群规模?•多集群架构,运维和管理系统如何在一个平台上支持多个组织的多个用户进行开发?•多租户支持,安全隔离,权限控制如何了解业务运行状态?•元数据管理,指标系统如何管理不同种类的任务?•服务化,统一计算入口,可度量和控制的计算资源准实时查询,R-ODPS,…,我们还在继续探索高效稳定的计算模型10SQL、MapReduce仍然是离线运算的主流,但是,频繁IO带来的性能瓶颈…模型描述能力的局限…准实时查询•优势:–避免IO消耗–节约调度成本•劣势:–Failover–资源占用–数据规模•适用场景:–Adhoc分析11图编程•功能:–统一的API、授权、数据存储、meta–Master-slave,worker负责子图–通过迭代在节点间通讯和修改图拓扑•挑战:–数据倾斜时的内存控制–与其他类型作业共存–错误恢复•优势:–方便处理图数据–多轮迭代性能远好于MR•应用场景:•推荐、社交网络、物流、…利用图编程实现SSSP算法(1)GraphLoader–图加载基类publicstaticclassSSSPGraphLoaderextendsGraphLoaderLongWritable,LongWritable,LongWritable,LongWritable{@Overridepublicvoidload(Recordrecord,MutationContext...context){SSSPVertexvertex=newSSSPVertex();vertex.setId((LongWritable)record.get(0));String[]edges=record.get(1).toString().split(,);for(inti=0;iedges.length;i++){String[]ss=edges[i].split(:);vertex.addEdge(newLongWritable(Long.parseLong(ss[0])),newLongWritable(Long.parseLong(ss[1])));}context.addVertexRequest(vertex);}}利用图编程实现SSSP算法(2)Vertex–点基类publicstaticclassSSSPVertexextendsVertexLongWritable,LongWritable,LongWritable,LongWritable{@Overridepublicvoidcompute(ComputeContext…context,Iterablemessages){longminDist=(getId()==1)?0:Integer.MAX_VALUE;for(LongWritablemsg:messages){if(msgminDist){minDist=msg;}}if(minDistthis.getValue()){this.setValue(minDist);for(Edgee:this.getEdges()){context.sendMessage(e.getDestVertexId(),minDist+getValue());}}else{voteToHalt();}}}利用图编程实现SSSP算法(3)矩阵和算法运算支持•基于MPI的算法运算包•图形化交互界面•支持算法:–SVD分解–逻辑回归–随机森林–…•连接R与ODPS•集成ODPS的算法-ODPS多集群架构17业务增长的速度永远快于技术完善的速度,如何支撑日益膨胀的存储和计算需求?多集群架构•多计算机群–解决规模瓶颈–统一meta•准实时数据同步–减少热数据跨机房–业务迁移•多控制机群–灰度发布–业务分离18多租户模型19如何支持多个团队在一个平台上开发?多租户模型20•用户空间•授权访问•跨空间访问•受保护的空间•空间互信ODPS安全架构数据安全是每个平台产品需要解决的核心问题Web服务器ODPS安全架构(MetaOTSStore)ODPS服务计算集群n计算集群1…ODPS客户端(SDK,Console)ODPS接入层ODPS控制集群OdpsWorkerSchedulerExecutorHiveServer云帐号Shenshu(授权服务)KDC(SSO服务)Web服务器OTS(MetaStore)域帐号…用户认证飞天内部认证与授权中心ODPS服务计算集群n计算集群1…ODPS客户端(SDK,Console)ODPS接入层ODPS控制集群1.认证.2.检查用户权限,检查数据保护策略.3.给FuxiJob配置最小权限的Capability.eg,pangucap权限如下:{“pangu://odps/prjA/shop/”:R,“pangu://odps/prjB/sale_detail/”:R,“pangu://odps/prjB/t1/”:W}SQL实例:INSERTOVERWRITEprjB.t1ASSELECTa.shop_name,b.sale_totalFROMprjA.shopaLEFTOUTERJOINprjB.sale_detailbONa.shop_name=b.shop_name;OdpsWorkerSchedulerExecutorHiveServer云帐号Shenshu(授权服务)KDC(SSO服务)Web服务器OTS(MetaStore)域帐号…用户认证飞天内部认证与授权中心ODPS服务计算集群n计算集群1…ODPS客户端(SDK,Console)ODPS接入层ODPS控制集群JavaSandboxProcessSandboxGuestOSKernel用户提交的MapReduce程序可能会:•恶意耗尽集群资源(CPU,Memory,Network,Disk);•直接访问Pangu文件,窃取或篡改其他用户数据;•窃取Linux节点上的飞天系统进程的敏感数据(如Tubo的capability);•...基于沙箱的纵深防御体系1.Java沙箱2.Linux进程级沙箱3.虚拟机沙箱OdpsWorkerSchedulerExecutorHiveServer灵活的授权方式{Version:1,Statement:[{Effect:Allow,Principal:zinan.tang,Resource:acs:odps:*:projects/sampleprj/tables/test_*,Action:[odps:Update,odps:Select]Condition:{IpAddress:{acs:SourceIp:10.32.180.0/23}}}]}25数据上传下载服务如何解决系统与多个数据源之间的数据交换问题?数据上传下载服务•服务化:REST•结构化数据•流式数据传输•高并发上传下载•服务能力水平扩展•可靠传输•Failover&断点续传•统一认证鉴权•流控和防攻击•提供可编程接口利用ODPSTunnel上传数据28结语•数据驱动的新商业模式是互联网产业下一个增长点•云计算能力是大数据应用的基石•分布式存储和计算的挑战–性能、稳定性、单点、通讯、故障恢复、状态机、…•ODPS才刚刚起步–10万台、万兆网卡、分布式内存文件读写、…29谢谢大家!30