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.