際際滷

際際滷Share a Scribd company logo
Spark?
????
?????? 
Resilient Distributed Datasets 
A Fault-Tolerant Abstraction for In Memory Cluster Computing 
???
? 
yongho.ha@gmail.com
? 
?? 
? ? 
2
?? ?? ?? 
?? Spark??? ?? ?? ????? ?? ??. 
????? Hadoop? ?? Legacy?? ?? ???? ?? ?????.
Spark? ??? ??? ? ??
??? ???? 
Spark = RDD + Interface 
RDD? ??? Spark? ????.
??(??)? ?????. 
? 2012? NSDI? ?? 
? NSDI 
? USENIX Symposium on Networked 
Systems Design  Implementation 
? ??? ?? ?? ??? 
? ?? ??? ???? ??. 
? ?? 2014? - ??? ???? ?? 
? ?? 2012? - ???? ??? ?? 
? RDD - 2012 NSDI Best Paper
?) ??? NSDI ??? ??
OK! RDD? ????. 
??? ??? RDD ??? ?????. 
Spark???? ??? ???? ??? ?? ????.
Spark ? ??? ????? RDD! (RDD paper review)
14? ?? ??? 
???? ??? ?? 
? ??? ??? Google File System??? ???? ???? 
? GFS? ???? ??? ?? ???? ??? ? 
? RDD? ?? ??? ??? ??? ? ?? 
? ?? ?? ???? ??? ?? 
? GFS = ???? = ?? 
? RDD = ??? = ????
?? ??? ?? 
1. Introduction - ? ?? ??? ?? ?????? ?? ?? 
2. Resilient Distributed Datasets - RDD??? ?? ??? ??? ??, ? ???? ?? ?? 
3. Spark Programming Interface - RDD? ?? ??? ? ? ??? ??? ?? 
4. Representing RDD - RDD? ??? ????, Lineage? ? ????? 
5. Implementation - ?????, ????? ??, ??? ??, ??????? ?? ??? 
6. Evaluation - ?? ??. ?? ???? ??? ???? Hadoop?? ??? 
7. Discussion - RDD? ??? ????? ? ???? ???? ??? ????? 
8. Related Work - ?? ??? ?? ???, ??? ??? ?? ?? ? ?? ????? 
9. Conclusion
??? ?? ?????? 
??? ???? 
?? ??? ?????.
Motivation 
MapReduce? ?? ??? ??? ?? ????? ??? 
?? ?? ? ????. ?? ?? ??? ?? ? ?? 
- ? ????, multi-stage ? ?? (????, ???) 
- interactive ?? ad-hoc? ?? 
??? ?????, pregel ?? ???? ?? ????? 
? ???? ?? ???? ??? ????
?? ?? ??? 
???? Data Sharing ?? 
MR? iteration?? ?? ??? 
? iteration? ???? ????? ?? ??? 
HDFS? ??? ???? ???? 
?? ???? RAM?? ??!
????? ??? 
??? ???? HDFS?? ????, ???? ?? ??? ?? ?? ?? ?????
????? ??? 
??? ? ??, ???? ??????, ?? ?? ?? ??, ???? ??????!
??? ??? 
??? ????(fault)????? 
??? ?? 
fault-tolerant  efficient? 
?????? ??? ??? 
(??? ?? ??????) 
?? ???? `?? ????¨? ?? ?? ????. ??? ????.
??? RAM? ?? ???? 
RAM? RAM???. update? ?? ?? ????? 
??? fine-grained update? ???? 
RAMCloud, Piccolo?? ??? ???. 
?? fault-tolerance?? ???. 
replicating  checkpointing? ?? 
??? ????, ?????? - ??? ???? - replicating 
replicating?? ??? ??????? - ????? - ??! 
replicating??? ???? disk? ????? - checkpointing - ?? ??!
??? GFS(HDFS)? 
??? Breakthrough? ????? 
?????. 
Modifiy? ??? ?? ??? 
??? ?? ??? ?? ??? 
?? ? ?? ????? ???? 
??? ?? ?? ??? ?? 
? ???? ?? ? ???. 
?? ??? ??? ? ??? ????.
RAM? read-only?? ???? 
?? ?? ?? ??? ????. 
??? RDD! 
Resilient Distributed Datasets
Resilient Distributed Datasets 
?? ??? ???? 
? Immutable, partitioned collections of records 
? ???? - RDD ? ?????, RDD - RDD? ?? 
?? ?? ??? 
? ? ???? ?? ??? ?? ???? (immutable = read-only) 
? ?? ??? ??????? ????? ? ?? ? ???? 
? ??? ?? ?? ?????? ??(lineage)? ???? fault-tolerant 
??? ??? ??? ???? ?? ????? ??? ???!
??? ?? ???? 
DryadLINQ-like API in the Scala language 
??? ?? ?? ??? ?? ??? ??? ???, 
?? ? ???? lineage ???, 
directed acyclic graph(DAG)? ??? ? ??? ? 
??? ??? ????? ??? ??(transformation)?? ?? ??? ???? ???.
??? 2?? RDD operator? ??. 
transformations  actions 
transformation? (map, reduce, join ??) ???? ????, ??? ?? ?? 
??? map, reduce? ?? MR?? ???? ????. 
Actions? ??? ??? `? ?? transformation? ??? ????~¨ ?? ?? 
trans-trans-´-trans-action ?? ??? ??.
lazy-execution 
??????? ????, transformation?? ???? 
??? ??? ??? 
???? ??? ???? ? 
action?? ??? ^? ?? ̄?? ??? 
action? ???? ??? ??? ???? ??? ? ?? 
(lazy-execution)
?? lazy? ????. 
??? ?????? 
??? ? ???? ???? 
? ??? Execution Plan? 
? ???? ???? 
?? ?????, 
??? ???, ??? ??? 
?? ???? 
??? ??? ? ? ??. 
??? ??? ??? ? 10?? ?? ?, ????? ??? ???? ???, 
??? 10? ???? ??? ??, ?? ??? ?? ??? ? ?? ? ?? ?? 
?? ??. (?? ??? ?? ???? ? ????)
??? type? dependency 
?? ????? ? ??? ? ?? ?? ??? ??? ??. ???? narrow dependecy 
? ???? ? ???? ?? ??? ?? ?? ???? ?? ? ???. ??? wide
narrow dependecy? ???! 
narrow dependency? ??, 
?? ??? ? ? ???? ? ? ??. 
???? ???? ??? 
?? ???. 
?? ??? ?? ???? ????, 
? ???? ? ??????. 
narrow? ? ?? (? ?? ???) ? ?? ????. - ???? ??? ????. ??? 
wide? ???? ????? ???. (?? ??) - ???? ??? ????. ? ??
wide dependency 
?? ??, 
??? ???? ?? ????. 
???? ?? ??. 
???? ???. (???? ??) 
??? ?? ??? ??? 
checkpointing???? ????.
job scheduling 
DAG? ?? ??? ???. 
?? ????? ???? ?? 
???? ?? ???? 
lineage? ??? ????? 
??? ????. 
???? ??? ??? data-locality 
? ??? ????. 
(?? HDFS)
??? ?? ??? ??? ?? 
??? ???? ????? ??? ??, ???? ???? ????. 
?????? ??? transform?? ? ????? ????. 
??? ??(shuffle?) ??? ??? ?? ???? ?????.
??? ??. 
??? ???? ???? ?? ???? 
LRU? ??? ??? ?? 
- ??? ???? ?? 
- ??? ?? ??? ? ??? 
?? ??? ???? 
- ??? ??? ???? ??
??? ??. 
??? Fault? ?? Recovery ???? 
lineage? ??? ????? 
? ??? ?? ???(????) 
?? ???? ?? ??? 
?? ??? ??? ??
??? ?????? ???? 
???? lineage? ??? ? ? ??? 
wide dependency? ?? ?? ???? ? ??? ??? ?? ???. 
??? ???? ?? ?? ???, ???? checkpointing? ??? 
? ?? ??? ? ?? ?? ?? ??. 
?? ????? ???. checkpoint. 
??? read-only? ? ??. ?? ???? ?? ?? ?? ?? ??? 
??????? async? ??? ?. ??? ???? ?????.
?? ??? ???? 
??? shuffle(join)? ??? 
??? checkpointing??? 
? ?? 
??? ? ??? ???? ? 
?? ?? ?? ??? ?? ? 
??
? ?? ??? ?? ??? 
IO Intensive CPU Intensive 
??. 
??? Iteration? ?? ??? ??, ?? ?? ???? 
HadoopBM? ??? ??? HDFS? ??? in-memory HDFS? ??. 
Hadoop??? ??? ?? ?? ???? ??? ?? ??? ??. 
??? ??? ?? ?? ????(???) Spark? ???
??? ??? 
????? 
????.
Spark VS in-memory hadoop 
RAM??? ??? ????? ??? 
? in-memory HDFS? ?? HadoopBinMem?? ???? 
? Hadoop? ????? ??? ?? ???? ????? ?? 
? HDFS?? ?? ???? ???? ?? 
? Bin? ??? ?? Java object? ? ???? ?? ?? 
? (spark? java object??? ?? ????. ?? ???) 
?? RDD? Spark? ??? ?? ?? ?????. 
?????(in-memory ? ?? ???? hadoop)? ????. 
?? ??? ????? ??? ?? ?????? ?? ?? ??? ??? ???;;;

More Related Content

Spark ? ??? ????? RDD! (RDD paper review)

  • 3. ?????? Resilient Distributed Datasets A Fault-Tolerant Abstraction for In Memory Cluster Computing ???
  • 5. ? ?? ? ? 2
  • 6. ?? ?? ?? ?? Spark??? ?? ?? ????? ?? ??. ????? Hadoop? ?? Legacy?? ?? ???? ?? ?????.
  • 8. ??? ???? Spark = RDD + Interface RDD? ??? Spark? ????.
  • 9. ??(??)? ?????. ? 2012? NSDI? ?? ? NSDI ? USENIX Symposium on Networked Systems Design Implementation ? ??? ?? ?? ??? ? ?? ??? ???? ??. ? ?? 2014? - ??? ???? ?? ? ?? 2012? - ???? ??? ?? ? RDD - 2012 NSDI Best Paper
  • 10. ?) ??? NSDI ??? ??
  • 11. OK! RDD? ????. ??? ??? RDD ??? ?????. Spark???? ??? ???? ??? ?? ????.
  • 13. 14? ?? ??? ???? ??? ?? ? ??? ??? Google File System??? ???? ???? ? GFS? ???? ??? ?? ???? ??? ? ? RDD? ?? ??? ??? ??? ? ?? ? ?? ?? ???? ??? ?? ? GFS = ???? = ?? ? RDD = ??? = ????
  • 14. ?? ??? ?? 1. Introduction - ? ?? ??? ?? ?????? ?? ?? 2. Resilient Distributed Datasets - RDD??? ?? ??? ??? ??, ? ???? ?? ?? 3. Spark Programming Interface - RDD? ?? ??? ? ? ??? ??? ?? 4. Representing RDD - RDD? ??? ????, Lineage? ? ????? 5. Implementation - ?????, ????? ??, ??? ??, ??????? ?? ??? 6. Evaluation - ?? ??. ?? ???? ??? ???? Hadoop?? ??? 7. Discussion - RDD? ??? ????? ? ???? ???? ??? ????? 8. Related Work - ?? ??? ?? ???, ??? ??? ?? ?? ? ?? ????? 9. Conclusion
  • 15. ??? ?? ?????? ??? ???? ?? ??? ?????.
  • 16. Motivation MapReduce? ?? ??? ??? ?? ????? ??? ?? ?? ? ????. ?? ?? ??? ?? ? ?? - ? ????, multi-stage ? ?? (????, ???) - interactive ?? ad-hoc? ?? ??? ?????, pregel ?? ???? ?? ????? ? ???? ?? ???? ??? ????
  • 17. ?? ?? ??? ???? Data Sharing ?? MR? iteration?? ?? ??? ? iteration? ???? ????? ?? ??? HDFS? ??? ???? ???? ?? ???? RAM?? ??!
  • 18. ????? ??? ??? ???? HDFS?? ????, ???? ?? ??? ?? ?? ?? ?????
  • 19. ????? ??? ??? ? ??, ???? ??????, ?? ?? ?? ??, ???? ??????!
  • 20. ??? ??? ??? ????(fault)????? ??? ?? fault-tolerant efficient? ?????? ??? ??? (??? ?? ??????) ?? ???? `?? ????¨? ?? ?? ????. ??? ????.
  • 21. ??? RAM? ?? ???? RAM? RAM???. update? ?? ?? ????? ??? fine-grained update? ???? RAMCloud, Piccolo?? ??? ???. ?? fault-tolerance?? ???. replicating checkpointing? ?? ??? ????, ?????? - ??? ???? - replicating replicating?? ??? ??????? - ????? - ??! replicating??? ???? disk? ????? - checkpointing - ?? ??!
  • 22. ??? GFS(HDFS)? ??? Breakthrough? ????? ?????. Modifiy? ??? ?? ??? ??? ?? ??? ?? ??? ?? ? ?? ????? ???? ??? ?? ?? ??? ?? ? ???? ?? ? ???. ?? ??? ??? ? ??? ????.
  • 23. RAM? read-only?? ???? ?? ?? ?? ??? ????. ??? RDD! Resilient Distributed Datasets
  • 24. Resilient Distributed Datasets ?? ??? ???? ? Immutable, partitioned collections of records ? ???? - RDD ? ?????, RDD - RDD? ?? ?? ?? ??? ? ? ???? ?? ??? ?? ???? (immutable = read-only) ? ?? ??? ??????? ????? ? ?? ? ???? ? ??? ?? ?? ?????? ??(lineage)? ???? fault-tolerant ??? ??? ??? ???? ?? ????? ??? ???!
  • 25. ??? ?? ???? DryadLINQ-like API in the Scala language ??? ?? ?? ??? ?? ??? ??? ???, ?? ? ???? lineage ???, directed acyclic graph(DAG)? ??? ? ??? ? ??? ??? ????? ??? ??(transformation)?? ?? ??? ???? ???.
  • 26. ??? 2?? RDD operator? ??. transformations actions transformation? (map, reduce, join ??) ???? ????, ??? ?? ?? ??? map, reduce? ?? MR?? ???? ????. Actions? ??? ??? `? ?? transformation? ??? ????~¨ ?? ?? trans-trans-´-trans-action ?? ??? ??.
  • 27. lazy-execution ??????? ????, transformation?? ???? ??? ??? ??? ???? ??? ???? ? action?? ??? ^? ?? ̄?? ??? action? ???? ??? ??? ???? ??? ? ?? (lazy-execution)
  • 28. ?? lazy? ????. ??? ?????? ??? ? ???? ???? ? ??? Execution Plan? ? ???? ???? ?? ?????, ??? ???, ??? ??? ?? ???? ??? ??? ? ? ??. ??? ??? ??? ? 10?? ?? ?, ????? ??? ???? ???, ??? 10? ???? ??? ??, ?? ??? ?? ??? ? ?? ? ?? ?? ?? ??. (?? ??? ?? ???? ? ????)
  • 29. ??? type? dependency ?? ????? ? ??? ? ?? ?? ??? ??? ??. ???? narrow dependecy ? ???? ? ???? ?? ??? ?? ?? ???? ?? ? ???. ??? wide
  • 30. narrow dependecy? ???! narrow dependency? ??, ?? ??? ? ? ???? ? ? ??. ???? ???? ??? ?? ???. ?? ??? ?? ???? ????, ? ???? ? ??????. narrow? ? ?? (? ?? ???) ? ?? ????. - ???? ??? ????. ??? wide? ???? ????? ???. (?? ??) - ???? ??? ????. ? ??
  • 31. wide dependency ?? ??, ??? ???? ?? ????. ???? ?? ??. ???? ???. (???? ??) ??? ?? ??? ??? checkpointing???? ????.
  • 32. job scheduling DAG? ?? ??? ???. ?? ????? ???? ?? ???? ?? ???? lineage? ??? ????? ??? ????. ???? ??? ??? data-locality ? ??? ????. (?? HDFS)
  • 33. ??? ?? ??? ??? ?? ??? ???? ????? ??? ??, ???? ???? ????. ?????? ??? transform?? ? ????? ????. ??? ??(shuffle?) ??? ??? ?? ???? ?????.
  • 34. ??? ??. ??? ???? ???? ?? ???? LRU? ??? ??? ?? - ??? ???? ?? - ??? ?? ??? ? ??? ?? ??? ???? - ??? ??? ???? ??
  • 35. ??? ??. ??? Fault? ?? Recovery ???? lineage? ??? ????? ? ??? ?? ???(????) ?? ???? ?? ??? ?? ??? ??? ??
  • 36. ??? ?????? ???? ???? lineage? ??? ? ? ??? wide dependency? ?? ?? ???? ? ??? ??? ?? ???. ??? ???? ?? ?? ???, ???? checkpointing? ??? ? ?? ??? ? ?? ?? ?? ??. ?? ????? ???. checkpoint. ??? read-only? ? ??. ?? ???? ?? ?? ?? ?? ??? ??????? async? ??? ?. ??? ???? ?????.
  • 37. ?? ??? ???? ??? shuffle(join)? ??? ??? checkpointing??? ? ?? ??? ? ??? ???? ? ?? ?? ?? ??? ?? ? ??
  • 38. ? ?? ??? ?? ??? IO Intensive CPU Intensive ??. ??? Iteration? ?? ??? ??, ?? ?? ???? HadoopBM? ??? ??? HDFS? ??? in-memory HDFS? ??. Hadoop??? ??? ?? ?? ???? ??? ?? ??? ??. ??? ??? ?? ?? ????(???) Spark? ???
  • 39. ??? ??? ????? ????.
  • 40. Spark VS in-memory hadoop RAM??? ??? ????? ??? ? in-memory HDFS? ?? HadoopBinMem?? ???? ? Hadoop? ????? ??? ?? ???? ????? ?? ? HDFS?? ?? ???? ???? ?? ? Bin? ??? ?? Java object? ? ???? ?? ?? ? (spark? java object??? ?? ????. ?? ???) ?? RDD? Spark? ??? ?? ?? ?????. ?????(in-memory ? ?? ???? hadoop)? ????. ?? ??? ????? ??? ?? ?????? ?? ?? ??? ??? ???;;;
  • 41. ??. ???. ?? ?????? ???? RDD?? ??? ??? ????, ??? ?? ???? ? ??? ? ??? ????? ??? ?? ??. ?? ? ???. MapReduce DryadLINQ SQL Pregel Iterative MapReduce Batched Stream Processing ?? ?? Map, Reduce? ???? ??? ?? ???? ? ???. ??? ??? ? ??? ?? ? ????..
  • 42. ?? RAM? ROM?? ???? ??. (RAM??? ???? ?? ???) fault-tolerant efficient? ?????? ????! (??? ?? ??? ???!) ??? ??? ???? Spark? ??? ?????.
  • 43. ??) RDD? ??? ? ?????