当前位置:
文档之家› Google云计算解决方案1_ 分布式系统概述
Google云计算解决方案1_ 分布式系统概述
Other Distributed Systems
• BOINC: Another platform • Broader definition of distributed systems
– DNS – One Laptop per Child project
© Spinnaker Labs, Inc.
– Students requested much more time be spent on ―how to parallelize an iterative algorithm‖
• Background material was very fast-paced
© Spinnaker Labs, Inc.
• Introductory Lecture Material
© Spinnaker Labs, Inc.
UW: Course Summary
• Course title: ―Problem Solving on Large Scale Clusters‖ • Primary purpose: developing large-scale problem solving skills • Format: 6 weeks of lectures + labs, 4 week project
© Spinnaker Labs, Inc.
Classroom Activities
• Worksheets included pseudo-code programming, working through examples
– Performed in groups of 2—3
• Small-group discussions about engineering and systems design
Google Cluster Computing Faculty Training Workshop
Module I: Introduction to MapReduce
Workshop Syllabus
• Seven lecture modules
– Information about teaching the course – Technical info about Google tools & Hadoop – Example course lectures
– Added reasonably large amount of background material
• Ran & solved all labs in advance
© Spinnaker Labs, Inc.
The Course: What Worked
• Discussions
– Often covered broad range of subjects
• Hands-on lab projects • ―Active learning‖ in classroom • Independent design projects
© Spinnaker Labs, Inc.
Things to Improve: Coverage
• Algorithms were not reinforced during lecture
• Design projects could have used more time
© Spinnaker Labs, Inc.
Conclusions
• Solid basis for future coursework
• Bayesian Wikipedia spam filter • Unsupervised synonym extraction • Video collage rendering
© Spinnaker Labs, Inc.
Common Features
• Hadoop! • Used publicly-available web APIs for data • Many involved reading papers for algorithms and translating into MapReduce framework
•
Four lab exercises
– Assigned to students in UW course
© Spinnaker Labs, Inc.
Overview
• University of Washington Curriculum
– Teaching Methods – Reflections – Student Background – Course Staff Requirements
© Spinnaker Labs, Inc.
MapReduce
• Brief refresher on functional programming • MapReduce slides
– More detailed version of module I
• Discussion on MapReduce
• Final four weeks of quarter • Teams of 1—3 students • Students proposed topic, gathered data, developed software, and presented solution
© Spinnaker Labs, Inc.
Example: Geozette
Image © Julia Schwartz
© Spinnaker Labs, Inc.
Example: Galaxy Simulation
Image © Slava Chernyak, Mike Hoak
© Spinnaker Labs, Inc.
Other Projects
© Spinnaker Labs, Inc.
Networking and Reliability
• Crash course in networking • Distributed systems reliability
– What is reliability? – How do distributed systems fail? – ACID, other metrics
• Introduction to Hadoop, Eclipse Setup, Word Count • Inverted Index • PageRank on Wikipedia • Clustering on Netflix Prize Data
© Spinnaker Labs, Inc.
Design Projects
Labs
• Also 2 hours, once per week • Focused on applications of distributed systems • Four lab projects over six weeks
© Spinnaker Labs, Inc.
Lab Schedule
© Spinnaker Labs, Inc.
Distributed File Systems
• Introduced GFS • Discussed implementation of NFS and AndrewFS (AFS) for comparison
© Spinnaker Labs, Inc.
© Spinna• • • 2 hours, once per week Half formal lecture, half discussion Mostly covered systems & background Included group activities for reinforcement
– Worked only about three hours/week
© Spinnaker Labs, Inc.
Preparation
• Teaching assistants had taken previous iteration of course in winter • Lectures retooled based on feedback from that quarter
• Formed basis for discussion
© Spinnaker Labs, Inc.
Lecture Schedule
• • • • • • Introduction to Distributed Computing MapReduce: Theory and Implementation Networks and Distributed Reliability Real-World Distributed Systems Distributed File Systems Other Distributed Systems
© Spinnaker Labs, Inc.
Course Staff
• Instructor (me!) • Two undergrad teaching assistants
– Helped facilitate discussions, directed labs
• One student sys admin
© Spinnaker Labs, Inc.
Intro to Distributed Computing
• • • • What is distributed computing? Flynn’s Taxonomy Brief history of distributed computing Some background on synchronization and memory sharing