~ Home ~

Feed


Description

This course aims to provide students an understanding in the operating principles and hands-on experience with mainstream Big Data Computing systems. Open-source platforms for Big Data processing and analytics would be discussed. Topics to be covered include:

  • Programming models and design patterns for mainstream Big Data computational frameworks ;

  • System Architecture and Resource Management for Data-center-scale Computing ;

  • System Architecture and Programming Interface of Distributed Big Data stores ;

  • High-level Big Data Query languages and their processing systems ;

  • Operational and Programming tools for different stages of the Big Data processing pipeline including data collection/ ingestion, serialization and migration, workflow coordination.

Course Pre-requisite:

This course contains substantial hands-on components which require solid background in programming and hands-on operating systems experience. IERG 4300/ENGG 4030 is an official pre-requisite.

Course Information

Lecture time and venue:

  • MMW LT1 ; MON 9:30am - 11:15am
  • LSK LT1 ; FRI 9:30am - 11:15am

Lecture time and venue(ESTR4316):

  • TBD

Instructor:

  • Prof. Wing Cheong Lau.
    • wclau [at] ie [dot] cuhk [dot] edu [dot] hk
    • Office hours: MON 13:00pm - 14:00pm or by appointment (SHB 818)

Tutorial:

  • ERB 408 ; Tues. 18:30-19:15

Teaching Assistant:

  • Wu Tong
    • wt017 [at] ie [dot] cuhk [dot] edu [dot] hk
    • Office hour: MON 2:15pm - 3:00pm (SHB 826A or SHB 803)

Website account:

User: bigdata
Password: spring2019bigdata

Recommended Text

Recommended List of Research Papers for Reading

  • [MapReduce] Jeffrey Dean and Sanjay Ghemawat, “MapReduce: Simplified Data Processing on Large Clusters,” OSDI 2004.

  • [GoogleFileSystem] Sanjay Ghemawat, Howard Gobioff and Shun-Tak Leung, “The Google File System,” ACM SOSP 2003.

  • [MapReduceFamilySurvey2013] Sakr S, Liu A, Fayoumi A G. The family of mapreduce and large-scale data processing systems[J]. ACM Computing Surveys (CSUR), 2013.

  • [YARN] V.K. Vavilapalli, A.C.Murthy, “Apache Hadoop YARN: Yet Another Resource Negotiator,” ACM Symposium on Cloud Computing (SoCC) 2013.

  • [Mesos] B. Hindman et al, “Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center”, NSDI 2011.

  • [DRF] A. Ghodsi et al, “Dominant Resource Fairness: Fair Allocation of Multiple Resource Types,” NSDI 2011.

  • [Borg] A. Verma, L. Pedrosa, “Large-scale cluster management at Google with Borg”, Eurosys 2015

  • [Omega] M. Schwarzkopf, A. Konwinski, M.Abd-El-Malek, J. Wilkes, “Omega: flexible, scalable schedulers for large compute clusters,” Eurosys 2013

  • [Sparrow] K. Ousterhout et al, “Sparrow: Distributed, Low Latency Scheduling”, ACM SOSP 2013

  • [Apollo] E. Boutin et al, “Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing”, OSDI 2014

  • [Mercury] K. Karanasos et al, “Mercury: Hybrid Centralized and Distributed Scheduling in Large Shared Clusters”, Usenix ATC 2015

  • [GraphLab1] Yucheng Low, Joseph Gonzalez et al, “GraphLab: A New Framework for Parallel Machine Learning,” UAI 2010.

  • [PowerGraph] Joseph Gonzalez et al, “PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs,” OSDI 2012.

  • [GraphChi] Aapo Kyrola, Guy Blelloch, Carlos Guestrin, “GraphChi: Large-Scale Graph Computation on Just a PC,” OSDI 2012.

  • [Storm@Twitter] Ankit Toshniwal et al, “Storm@Twitter,” ACM SIGMOD 2014.

  • [PigLatin] Christopher Olston et al, “Pig Latin: A Not-So-Foreign Language for Data Processing,” ACM SIGMOD 2008.

  • [Hive1] Ashish Thusoo et al, “Hive: a warehousing solution over a map-reduce framework,” VLDB 2009.

  • [Hive2] Ashish Thusoo et al, "Data warehousing and analytics infrastructure at facebook,” ACM SIGMOD 2010

  • [Hive3] Ashish Thusoo et al, “Hive - A Petabyte Scale Data Warehouse Using Hadoop,” IEEE ICDE 2010.

  • [HiveAdvances] Yin Huai et al, “Major Technical Advancements in Apache Hive,” ACM SIGMOD 2014.

  • [Dryad] Michael Isard et al, "Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks,” Eurosys 2007.

  • [DryadLINQ] Yuan Yu et al, “DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language, “ OSDI 2008.

  • [DryadLINQ2] Michael Isard, Yuan Yu, "Distributed Data-Parallel Computing Using a High-Level Programming Language,” ACM SIGMOD 2009

  • [Tez] Bikas Saha et al, "Apache Tez: A Unifying Framework for Modeling and Building Data Processing Applications,” ACM SIGMOD 2015.

  • [Dynamo] Giuseppe DeCandia et al, "Dynamo: Amazon's Highly Available Key-value Store," ACM SOSP 2007.

  • [BigTable] Fay Chang et al, “Bigtable: A Distributed Storage System for Structured Data,” OSDI 2006.

  • [Cassandra] Avinash Lakshman, Prashant Malik, “Cassandra - A Decentralized Structured Storage System,” ACM SIGOPS Operating Systems Review, Apr 2010.

  • [RealtimeHadoopFacebook] Dhruba Borthakur et al, “Apache Hadoop goes realtime at Facebook,” ACM SIGMOD 2011.

  • [SparkRDD] Matei Zaharia et al, "Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing,” NSDI 2012.

  • [Spark] Matei Zaharia et al, “Fast and Interactive Analytics over Hadoop Data with Spark,” Usenix ;login Aug 2012.

  • [Spark Streaming] Matei Zaharia et al, "Discretized streams: Fault-tolerant streaming computation at scale,” ACM SOSP 2013.

  • [SharkSQL] Reynold S. Xin et al, "Shark: SQL and rich analytics at scale,” ACM SIGMOD 2013

  • [SparkSQL] Michael Armbrust et al, “Spark SQL: Relational Data Processing in Spark,” ACM SIGMOD 2015.

  • [GraphX] Joseph E. Gonzalez et al, "GraphX: Graph Processing in a Distributed Dataflow Framework,” OSDI 2014.

  • [SparkScaling] Michael Armburst et al, “Scaling Spark in the real world: performance and usability,” VLDB 2015.

  • [MapReduceVsSpark] Juwei Shi et al, "Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics," VLDB 2015.

  • [SparkMLbase] T. Kraska, A. Talwalkar, J.Duchi, R. Griffith, M. Franklin, M.I. Jordan, "MLbase: A Distributed Machine Learning System," In Conference on Innovative Data Systems Research (CIDR), 2013.

  • [SparkMLI] E. Sparks, A. Talwalkar, V. Smith, J. Kottalam, X. Pan, J. Gonzalez, J. Gonzalez, M. Franklin, M. I. Jordan, T. Kraska. MLI: An API for Distributed Machine Learning. In International Conference on Data Mining, 2013.

  • [SparkMLlib] Xiangrui Meng et al, "MLlib: Machine learning in Apache Spark,” arXiv:1505.06807, May 2015.

  • [SparkNet] Philipp Moritz, Robert Nishihara, Ion Stoica, Michael Jordan, "SparkNet: Training Deep Networks on Spark,” ICLR 2016.

  • [Naiad] Derek G. Murray et al, "Naiad: A Timely Dataflow System,” ACM SOSP 2013.

  • [ZooKeeper1] P Hunt, M Konar, FP Junqueira, B Reed , “ZooKeeper: Wait-free Coordination for Internet-scale Systems,” Usenix ATC 2010.

  • [ZAB1] Benjamin Reed, Flavio P. Junqueira, “A simple totally ordered broadcast protocol,” 2nd Workshop on Large-scale Distributed Systems and Middleware (LADIS), 2008.

  • [ZAB2] F.P. Junqueira, B.C. Reed, M. Serafini, "High-performance broadcast for primary-backup systems,” IEEE/IFIP DSN, 2011.

  • [Kubernetes1] Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, and John Wilkes, "Borg, Omega, and Kubernetes - Lessons Learned from Three Container-Management Systems over a decade," ACM Queue, Jan 2016.

  • [Kubernetes2] David Rensin, Kubernetes - Scheduling the Future at Cloud Scale, (Free eBook) published by O'Reilly 2015.

Recommended Programming References

  • [SparkAnalytics] Advanced Analytics with Spark, by Sandy Ryza, Uri Laserson, Sean Owen and Josh Wills, Publisher: O’Reilly Media, April 2015

  • [DataAlgorithms] Data Algorithms: Recipes for Scaling Up with Hadoop and Spark, by Mahmoud Parsian, Publisher: O'Reilly Media, Aug 2015

  • [LearnSpark] Learning Spark, by Holden Karau, Andy Konwinski, Patrick Wendell and Matei Zaharia, Publisher: O’Reilly Media, Feb 2015

  • [HBase] HBase: The Definitive Guide, by Lars George, published by O’Reilly Media,.

  • [CassandraBook] Cassandra: The Definitive Guide, by Eben Hewitt, published by O’Reilly Media,.

  • [ZooKeeper] ZooKeeper: Distributed Process Coordination, by Flavio Junqueira and Benjamin Reed, published by O’Reilly Media, 2013

  • [Pig] Programming Pig, by Alan Gates, published by O’Reilly Media

  • [Hive] Programming Hive, by Edward Capriolo, Dean Wampler, Jason Rutherglen, published by O’Reilly Media,

  • [OpenStackOp] OpenStack Operations Guide, published by O’Reilly Media, (current-version available online at: http://docs.openstack.org/openstack-ops/content )

  • [OozieBook] Apache Oozie : The Workflow Scheduler for Hadoop, by Mohammad Kamrul Islam, Aravind Srinivasan published by O'Reilly Media, 2015.

  • [Storm] Hortonworks Data Platform - Apache Storm Component Guidehttps://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_storm-component-guide/bk_storm-component-guide.pdf

Tentative Timetable

Lecture Date Topic Period Recommended Readings Additional References
Jan 7, 11 Course Admin;Resource Management for Data-center-scale Computing: Hadoop YARN, Mesos and beyond; 9:30am - 11:15am [YARN], [Mesos],[Hadoop]Ch.2-3, [CloudData], [Kubernetes1] [Borg], [Omega], [Sparrow], [Apollo], [Mercury], [MapReduceFamilySurvey2013], [Kubernetes2]
Jan 14, 18 ZooKeeper 9:30am - 11:15am [ZooKeeper1] [ZooKeeper], [ZAB1], [ZAB2]
Jan 21, 25 Programming Models (beyond MapReduce) for Big Data Computing: DAG-based Computational Frameworks: Dryad, DryadLINQ, TeZ 9:30am - 11:15am [Dryad], [DryLINQ], [Tez] -
Jan 28, Feb 1 High-level Data Query Languages for Big Data Analytics: Pig and Hive 9:30am - 11:15am [PigLatin], [Hive1], [Hadoop]Ch.16-17 [Hive2], [Hive3], [HiveAdvances], [Pig], [Hive]
Feb 4, 8 No class Chinese New Year Holidays
Feb 11, 15 Programming Models (beyond MapReduce) for Big Data Computing: Stream-based Processing: Storm 9:30am - 11:15am [Storm@Twitter], [StormApplied], [Heron] [BigData]
Feb 18, 22 Lambda Architecture Kappa Architecture; Unified Log: Apache Kafka Apache Samza 9:30am - 11:15am [KafkaBook],[Samza],[KleppmannMSSS] -
Feb 25, Mar 1 Programming Models (beyond MapReduce) for Big Data Computing: Graph-based Computing frameworks: Pregel/Giraph and GraphLab 9:30am - 11:15am [GraphLab1], [PowerGraph] [GraphChi]
Mar 4, 8 Programming Models (beyond MapReduce) for Big Data Computing: Spark: Spark and BDAS, Quick Tour of Scala, Spark RDDs 9:30am - 11:15am [Spark2018] [SparkScaling], [MapReduceVsSpark], [LearnSpark]Ch.1, Ch.10 ; [SparkAnalytics] Appendix A
Mar 8 - 9:30am - 10:30am Mid-term for IERG 4330/ESTR 4316
Mar 11, 15, 18 Programming Models (beyond MapReduce) for Big Data Computing: Spark (cont'd): SparkSQL, Spark Streaming, GraphX, MLlib 9:30am - 11:15am [GraphX], [SparkStreaming], [SparkSQL], [SparkMLlib], [LearnSpark]Ch.11 ; [SharkSQL], [SparkMBase], [SparkMLI]
Mar 22, 25 More Streaming Concepts: Event-time vs. Ingestion Time vs. Processing Time !! Windows: Sliding vs. Tumbling vs. Session; Trigger; Loop Iteration? Lambda vs. Advanced Streaming Systems: Apache Beam; Apache Flink 9:30am - 11:15am [StreamingSys],[FlinkBook1],[FlinkBook2],[Flink] -
Mar 29, Apr 1, 5 No class Instructor on conference leave for Mar 29 and reading week for Apr1, 5
Apr 8, 12, 15 Distributed Big Data Stores; BigTable/ HBase, Dynamo, Cassandra 9:30am - 11:15am [Dynamo], [BigTable], [Cassandra], [RealtimeHadoopFacebook], [NoSQL], [Hadoop]Ch.20 [HBase], [CassandraBook]

Course Assessment

The grade of IERG 4330 student is based on the following components:

  • Homework & Programming assignments (4 sets in total): 50%
  • Mid-term Exam: 10% (1-hour mid-term examination)
  • Final Exam: 40% (2-hour final examination)

Student/Faculty Expectations on Teaching and Learning

http://mobitec.ie.cuhk.edu.hk/StaffStudentExpectations.pdf

Academic Honesty

You are expected to do your own work and acknowledge the use of anyone else's words or ideas. You MUST put down in your submitted work the names of people with whom you have had discussions.

Refer to http://www.cuhk.edu.hk/policy/academichonesty for details

When scholastic dishonesty is suspected, the matter will be turned over to the University authority for action.

You MUST include the following signed statement in all of your submitted homework, project assignments and examinations. Submission without a signed statement will not be graded.

I declare that the assignment here submitted is original except for source material explicitly acknowledged, and that the same or related material has not been previously submitted for another course. I also acknowledge that I am aware of University policy and regulations on honesty in academic work, and of the disciplinary guidelines and procedures applicable to breaches of such policy and regulations, as contained in the website http://www.cuhk.edu.hk/policy/academichonesty/.

Acknowledgement

Thanks to Amazon Web Services, Google and Microsoft Azure for providing free computing resource support of this course