《大规模数据处理/云计算》课程大纲
The Syllabus for the course of Massive Data Processing/Cloud Computing
On June 17, 2009
本文叙述了2009年夏季学期作为开放课程开设的《大规模数据处理/云计算》课程的授课方式、教学步骤和考核方式。
1. 授课方式
采用多媒体教学和传统教学相结合的方式,理论学习和先进新技术专题相辅相成,在理论介绍上做到简介直观,在实验展示上做到生动活泼。在教学上始终贯彻理论联系实际的宗旨,培养学生的动手能力和思考能力,以解决具体问题为驱动,学以致用,用以促学。
2. 课程简介
云计算是产业界正在面临的一次重大变革,它要求学校计算机专业教育中加入那些现实世界的具有挑战性的问题,特别是海量数据处理的问题,改变学生们思考的方式和习惯。本课程以此为出发点,以此为目标。 课程以MapReduce为媒介,结合一些具体的数据处理问题来帮助学生学习并实践这一新的编程模型,从而介绍大规模数据处理里的并行化计算的趋势、问题、现状,培养学生的并行化思考问题的能力和更宏观和全面的视角。 目前本科教育的课程里,程序设计和问题求解有良好的基础课程设置,据我所知,内容侧重于算法和数据结构,不涉及到实际环境下与计算机体系结构相关的问题,包括性能优化,更不涉及到分布式并行。这里存在着一个现实问题和学校教育之间的鸿沟。如何能把学生推向现实世界的具有挑战性的问题,激发他们的求知热情以及想象力,是本课程的一个重要目标。另一方面,学生学习的编程语言是单一的命令式语言,这对于他们思考问题来说,是一个局限。通过mapreduce,也可以把函数式语言等其它思考范式介绍给他们,开启视野。 总的来说,云计算里所蕴含的现实挑战,特别是数据规模问题、算法并行化问题是对学生思维方式和习惯的冲击,具有极好的启迪和教育意义。可以激发学生进一步学习相关专业知识。作为一门短期的暑期课程,本课程强调实践,通过使用MapReduce系统,具体掌握在MapReduce环境下问题求解的方法。这一技能的掌握是课程目标的另一个重点。
3. 基本教学目的和要求
掌握MapReduce编程模型与运行环境的使用。 掌握算法在MapReduce模型下并行化的基本方法。 了解MapReduce运行分布式环境的实现技术。 了解算法并行化技术的发展现状和关键问题。 了解并培养并行化思考问题的习惯。
1
4. 教学大纲与知识点
LEC# TOPICS 1
课程介绍 MapReduce环境
2 3 4
MapReduce原理 Inverted Index问题
ABSTRACT
围绕大规模数据处理为背景介绍算法并行化,以MapReduce为平台展开讲授和实践,是课程的中心。
从函数式语言谈MapReduce的基本原理 分析Inverted Index问题及其MapReduce实现
KEY DATESLab 1 Hw1 Lab 2 Hw2 Lab 3 Hw3 Lab 4 Hw3
并行与分布式系统基础 介绍大规模并行分布式系统的设计
分析PageRank问题及其MapReduce实现 PageRank问题 MapReduce系统设计与
实现
Clustering问题
分析MapReduce的系统设计和考虑
分析Clustering问题及其MapReduce实现
5 MapReduce高层应用 频繁集挖掘问题
介绍MapReduce之上的应用和发展
分析频繁集挖掘问题及其MapReduce实现
Project Proposal due Hw4
6 7 8 9
并行化思考 项目讨论 特邀报告 项目报告
介绍算法并行化的技术现状和关键问题 课程项目讨论
邀请学术界或业界研究技术人员报告 学生课程项目报告
Lab 1 - Introduction to Hadoop, Eclipse Lab 2 – A Simple Inverted Index
Lab 3 - PageRank over Wikipedia Corpus Lab 4 – Clustering the Netflix Movie Data
Hw1 - Read - Intro Distributed system; Intro Parallel Programming. (references:http://code.google.com/edu/parallel/dsd-tutorial.html, http://code.google.com/edu/parallel/mapreduce-tutorial.html ) Hw2 - Read MapReduce[1] Hw3 – Read GFS[2] Hw4 – Read Pig Latin[3]
这个教学大纲中,每次课分为两个部分,一是偏理论性内容的讲授,一是问题求解的实验性内容讲授。
2
5. 考核方式
课程作业(assignments) : 30% 文献阅读(readings) : 20% 课程项目(course project): 50%
6. 课程网站和讨论组
http://net.pku.edu.cn/~course/cs402/2009 http://groups.google.com/group/cs402pku
7. 参考资料
Book:没有指定参考书 Papers: [1] [2]
J. Dean and S. Ghemawat, \"MapReduce: Simplified Data Processing on Large Clusters,\" in Osdi, 2004, pp. 137-150.
G. Sanjay, G. Howard, and L. Shun-Tak, \"The Google file system,\" in Proceedings of the nineteenth ACM symposium on Operating systems principles. Bolton Landing, NY, USA: ACM Press, 2003.
O. Christopher, R. Benjamin, S. Utkarsh, K. Ravi, and T. Andrew, \"Pig latin: a
not-so-foreign language for data processing,\" in Proceedings of the 2008 ACM SIGMOD international conference on Management of data. Vancouver, Canada: ACM, 2008.
[3]
3