
Hi, my name is Andy and I'm a instructor

at Udacity. I worked with Sara and Ian and

Ngundega to help prepare this lesson and today I'm

going to deliver it for you. So, let's get

started. Up to this point you've familiarized yourself with

MapReduce, you've written some mapper code, some reducer code.

And you probably have a decent understanding of what's

going on behind the scenes. But you might not

yet know when to use MapReduce to solve a

problem. And that's what we're going to try and get at

in this lesson. We're going to give you a bunch of

problems to solve and actually, each of these problems has

been deliberately selected, because each of these problems actually

represents some larger class of problems. In reality, the problems

you're likely to run into on the job are going

to fall into one of these certain classes of problems,

which is very convenient because it means you

can apply a sort of boiler plate solution, with

some modifications. These boilerplate solutions we call design patterns,

and they're really helpful. In this lesson we'll learn

about some of these design patterns, and we'll

practice using them on various problems. We're not going to

get into the details of where the patterns came

from, or why they look the way they do,

but, at the very least, at the end of this

lesson, you will have, well for one, you'll practice using these

patterns and you also have a resource. That you can always

come back to whenever you run into a problem that can

be solved using one of these patterns. If this kind of

stuff is really interesting to you, you should definitely check out

a book called MapReduce Design Patterns. It's written by Donald Miner

and Adam Shook and it's really interesting. Anyways, let's get started.