aboutsummaryrefslogtreecommitdiff
path: root/chapter/4
diff options
context:
space:
mode:
authorConnor Zanin <cnnrznn@gmail.com>2016-12-12 14:54:07 -0500
committerConnor Zanin <cnnrznn@gmail.com>2016-12-12 14:54:07 -0500
commit3ceac593715dec5c1dc42357d3a6d28e96eeb722 (patch)
tree6bcbf3c24f0f57a869b47668f76de9f361f3200d /chapter/4
parent96cf859dd50e8ea67cda6e10989a99e1a1fac741 (diff)
image
Diffstat (limited to 'chapter/4')
-rw-r--r--chapter/4/MR.pngbin0 -> 83219 bytes
-rw-r--r--chapter/4/dist-langs.md16
2 files changed, 14 insertions, 2 deletions
diff --git a/chapter/4/MR.png b/chapter/4/MR.png
new file mode 100644
index 0000000..54db004
--- /dev/null
+++ b/chapter/4/MR.png
Binary files differ
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md
index 21adfa6..64eccc0 100644
--- a/chapter/4/dist-langs.md
+++ b/chapter/4/dist-langs.md
@@ -283,9 +283,21 @@ Computation is data-centric, and expressed easily as a directed acyclic graph (D
Unlike the DSM and actor models, processes are not exposed to the programmer.
Rather, the programmer designs the data transformations, and a system is responsible for initializing processes and distributing work accross a system.
-#### Multilisp ()
-#### MapReduce ()
+#### MapReduce (2004)
+
+* input key-value pairs -> output key-value pairs
+* Map and Reduced chained to create programs
+* Map
+ * input key-value pairs transformed into intermediate key-value pairs
+* Reduce
+ * intermediate keys are aggregated by key
+ * function performs some action based on all values associated with an intermediate key
+* Map and Reduce may emit zero, one, or many key-value pairs per input
+
+![Alt text] (/MR.png "MapReduce Wordcount Workflow")
+
#### DryadLINQ ()
+#### Discretized Streams (2012)
### Which is best? Why?