分布式数据分析算法 杨 旭 数据平台事业部-产品与平台服务
概要 MapReduce MPI ODPS简介 ODPS MPI 常用算法 质量控制与工程实践
MapReduce 针对海量数据处理的分布式编程模型 MapReduce包括两种任务 Google公司的Jeffrey Dean 和 Sanjay Ghemawat “MapReduce: Simplied Data Processing on Large Clusters”, OSDI,2004 MapReduce包括两种任务 Map任务,对集合中的所有成员进行指定操作,得到中间结果集,然后交给Reduce任务处理 Reduce任务是对多个Map任务处理节点产生的中间结果进行合并和化简 Map任务和Reduce任务都可以高度并行,这对高效地处理海量数据非常重要。
MapReduce
什么是 MPI? Massage Passing Interface (消息传递接口) 是一种编程接口标准,而不是一种具体的编程语言 MPI-2.0发布,以前的版本统称MPI-1(97年7月) MPI-2.2发布 (09年9月)
最基本的MPI函数 MPI_Init(…); MPI_Comm_size(…); MPI_Comm_rank(…); MPI_Send(…); MPI_Recv(…); MPI_Finalize();
MPI 与 MapReduce 数据传输 MapReduce模式 MPI模式 各个计算节点间都可以传输数据
Open Data Processing Service(ODPS) 支持海量结构化数据的离线存储和计算 以RESTful API的方式提供服务 基于飞天平台 支持高吞吐量的数据上传下载服务 支持SQL和存储过程 支持数据挖掘和统计算法 支持用户开发、运行MapReduce程序 *支持类Dremel(准实时查询)和类pregel(图编程) 支持多用户管理和基于ACL和policy的权限控制 基于ODPS可以打造完整的数据仓库解决方案
ODPS MPI 计算任务的资源使用,启动,停止,运行状态要严格受系统控制 资源按需分配 数据需被授权访问 MPI可执行程序的分发 不能划出一片资源,一直占用 每次申请资源花费的时间也需考虑 数据需被授权访问 MPI可执行程序的分发
常用算法 基本数据操作 机器学习 统计分析 矩阵计算
质量控制与工程实践 内存控制 面向正确性验证的开发流程 发挥工具的力量 每个计算节点的内存都是经过规划的 对于无法精确规划的,例:数据表中的String类型。则从Job级别进行调整 面向正确性验证的开发流程 单机验证算法, Fuxi Job跑通,使用常用数据集(通常数据量较小)验证, 构造验证算法,进行大数据集验证 发挥工具的力量 实时汇总查看各计算Instance的CPU ,内存,硬盘IO,网络IO。 可视化工具,不需跳转,直接查看各节点的log, stdout, stderr. 自动诊断Job
分享让我变成我们! 分享可以改变世界!