Professor: Fábio Porto (LNCC)
Horarios: 19/02 a 22/02 de 14:00h às 15:30h
Objetivo: O aparecimento de grandes volumes de dados a serem analisados modificou o panorama de sistemas de processamento de dados. Além de sistemas do tipo NoSQL, surgiram frameworks BigData com alta escalabilidade e um modelo de programação que favorece o processamento paralelo e distribuído. Neste curso apresentaremos as principais abordagens para processamento BigData e nos concentramos em alguns dos frameworks existentes. Discutiremos seu Modelo de Programação, Arquitetura e Técnicas de Programação. No último dia do curso os alunos têm a experiência prática de desenvolvimento de um dataflow em Apache/ Spark
Ementa:
- Introdução a BigData
- Modelos de Programação: Map-Reduce, BSP, GraphXeGiraph
- Apache Spark, HDFS
- Framework Dask e Ray
- Estruturas de dados para grandes volumes de dados: Kd-tree, Ph-tree, DHTs, Quadtrees
- Estratégias de Particionamento de dados e Localidade de dados
- Execução de algoritmos de Deep Learning em Spark
- Parte prática: Exercício com o framework Apache Spark - Python
Bibliografia:
- Dean, J., Ghemawat, S., 'MapReduce: Simplified Data Processing on Large Clusters', OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004
- Tamer Ozsu, Patrick Valduriez, Principles of Distributed Database Systems, Springer-Verlag, 2011.
- Hasso Plattner, Alexander Zeir, In-Memory Data Management, Springer
- Zaharia, M., Chowdhury, M., Franklin, M. J., Shenker, S., and Stoica, I. (2010). Spark: Cluster computing with working sets. In Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing, HotCloud’10, pages 10–10, Berkeley, CA, USA. USENIX Association.
- Fabio Porto, Algoritmos e Programação em Big Data, Apostila, 2017
- Philip Moritz et al, Ray: A Distributed Framework for Emerging AI Applications, OSDI, 2018
- dask.org, last accessed June 2020.