《大规模分布式计算》PPT课件.ppt
大规模分布式计算MapReduce和Hadoop数据平台与产品部 少杰变化正在进行Agenda分布式计算需求:大规模数据为什么使用分布式?分布式计算需求:成本?为什么使用分布式?分布式计算并行化的尝试在硬件工艺/技术不变的前提下,提升计算能力更强大的硬件对称多处理器SMP分布式共享内存DSM分布式系统Share diskShare nothingA brief history分布式计算互联网应用的特殊性I/O操作强于计算操作复杂异构的机器环境变化的业务逻辑新需求分布式计算MapReduce分布式编程模型互联网应用的大规模数据计算解决方案MapReduce分布式计算MapReduce的优势简单一致性模型本地I/O优化扩展性Why MapReduce wins?分布式计算应用现状数据分析、报表索引商业智能服务规模淘宝现状分布式计算总结总结分布式计算BREAKMapReduce编程模型游戏什么是MapReduce?分布式编程模型What is MapReduce?MapReduce编程模型MapReduce语义Map:映射,空间变换Reduce:汇总,规约MapReduce methodologyMapReduce编程模型MapReduce数据结构map(in_key,in_value)-list(out_key,intermediate_value)reduce(out_key,list(intermediate_value)-list(out_value)分布式算法的核心内容MapReduce methodologyMapReduce编程模型系统视图系统考量容灾扩展性并行能力Master-slave结构A systematic viewMapReduce编程模型系统视图计算消耗网络I/O磁盘I/O排序Map/Reduce计算A systematic viewMapReduce编程模型系统视图并行能力子任务间并行M/R任务间并行作业间并行A systematic viewMapReduce编程模型范例web点击日志统计:PV/UV词频统计海量数据排序表JoinDiscussMapReduce编程模型MapReduce能做?日志分析商业智能分析客户营销大规模索引MapReduce不能:在线应用复杂依赖逻辑(循环、递归?)MapReduce的数据倾斜问题What MapReduce can do&cant doMapReduce编程模型总结总结MapReduce编程模型BreakHadoop开源分布式系统实现系统栈What is?系统系统Hadoop组件组件Mimic of?文件系统(DFS)HDFSGFSMapReduce计算框架MapReduceMapReduce锁服务ZooKeeperChubbyRPCAvroProtocolBuffer*高级语言/工作流支持Hive/Pig/CascadingSawzaw*实时(KV)存储HBase/HyperTableBigTableHadoopHadoop的历史2003 Google发表有关MapReduce论文2005 Nutch迁移到MapReduce实现2006.1 Doug Cutting加入Yahoo!2006.2 Yahoo从Nutch中剥离出MapReduce并开始使用Hadoop2007.1 Yahoo组建1000+节点的Hadoop集群2008.1 Hadoop成为Apache TLPHadoop:a brief historyHadoopHDFS:分布式文件系统设计原则硬件错误是常态而不是异常流式数据访问 大规模数据集 简单的一致性模型“移动计算比移动数据更划算”异构软硬件平台间的可移植性HDFSHadoopHDFS特性大容量高容错性高吞吐量HDFS数据模型包块文件HDFSHadoopMapReduce:分布式计算框架语言支持JavaC+(through pipes)script languages(through streaming)调度模型tasksjobsgroupsMapReduceHadoop编写MapReduce逻辑Javamapper/reducer/combinerpartitionerinputformat/outputformatStreaming高级语言实现HivePigMapReduceHadoop总结总结