Μετάβαση στο περιεχόμενο

Τεχνολογίες και αλγόριθμοι αποκεντρωμένων δεδομένων

Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.

Στόχοι

Απώτερος στόχος του μαθήματος είναι να εισαγάγει τους φοιτητές στους ακόλουθους δύο επιστημονικούς πυλώνες:(1) Θεωρία και Θεμελιώσεις στα Αποκεντρωμένα υπολογιστικά συστήματα (2) πρακτική εξάσκηση στις τεχνολογίες αποκεντρωμένων δεδομένων (δίνοντας έμφαση σε Spark, Python, και PySpark). Συγκεκριμένα, θα εστιάσουμε στις παρακάτω θεματικές: 1. Κατακερματισμός, Bloom Φίλτρα, Internet Caching Πρωτόκολλα, Πίνακες Κατανεμημένου Κατακερματισμού (DHTs). 2. Αποκεντρωμένες Δομές Δεδομένων και P2P συστήματα, Αποκεντρωμένα Συστήματα βασισμένα στον κατανεμημένο κατακερματισμό (Chord). 3. Δομές Δεδομένων Block-Chain και Αποκεντρωμένες Εφαρμογές (DAPPs): Κατακερματισμός Δεδομένων στον πραγματικό κόσμο, Αποθήκευση Δεδομένων Συναλλαγών στην αλυσίδα block-chain, Χρήση και Προστασία των αποθηκευμένων Δεδομένων, Κατανομή των αποθηκευμένων Δεδομένων μεταξύ των Peers, Επαλήθευση και Ένθεση Συναλλαγών, Επιλογή Ιστορίας Συναλλαγών. 4. Hadoop, Κατανεμημένα Συστήματα Αρχείων (HDFS), Map/Reduce Προγραμματιστικό Μοντέλο και NoSQL Βάσεις Δεδομένων, Cluster Αρχιτεκτονικές, Συστήματα Ροών Δεδομένων, Spark, Δομές RDDs. 5.Επισκόπηση της γλώσσας Python για Τεχνολογίες Αποκεντρωμένων Δεδομένων Εισαγωγή σε βιβλιοθήκες και εργαλεία (pandas, NumPy, κτλ.) Εισαγωγή στην PySpark Κατανοώντας την αρχιτεκτονική και τα βασικά συστατικά της PySpark 6.Αποθήκευση και Επεξεργασία δεδομένων σε Αποκεντρωμένα Συστήματα Ομαδική Επεξεργασία (MapReduce, Spark) Επεξεργασία Ροών (Spark Streaming, Flink) 7. Μηχανική Μάθηση Μεγάλης Κλίμακας με την PySpark Εισαγωγή στη Μηχανική Μάθηση Μηχανική Μάθηση Μεγάλης Κλίμακας Εισαγωγή στην MLlib Επισκόπηση της MLlib της PySpark Αλγόριθμοι που υποστηρίζονται από την MLlib (regression, classification, clustering, κτλ.) Κατανεμημένη Μηχανική Μάθηση με την PySpark 8.Προχωρημένα Θέματα και Μελέτες Περίπτωσης «Μελλοντικές Τάσεις» των Τεχνολογιών Αποκεντρωμένων Δεδομένων Διαδίκτυο των Πραγμάτων και Υπολογιστικό Νέφος Containers, Dockers, Kubernetes 9.Πρακτικό Μέρος: Υλοποίηση ενός μεγάλου Project (ή πολλών μικροτέρων) συνδυάζοντας όλα τα προηγούμενα.

Περιεχόμενο (ύλη)

Εβδομάδα #1: Κατακερματισμός, Bloom Φίλτρα, Internet Caching Πρωτόκολλα, Πίνακες Κατανεμημένου Κατακερματισμού (DHTs).

Εβδομάδα #2: Αποκεντρωμένες Δομές Δεδομένων και P2P συστήματα, Αποκεντρωμένα Συστήματα βασισμένα στον κατανεμημένο κατακερματισμό (Chord).

Εβδομάδα #3: Δομές Δεδομένων Block-Chain και Αποκεντρωμένες Εφαρμογές (DAPPs).

Εβδομάδα #4: Hadoop, Κατανεμημένα Συστήματα Αρχείων (HDFS), Map/Reduce Προγραμματιστικό Μοντέλο και NoSQL Βάσεις Δεδομένων, Cluster Αρχιτεκτονικές, Συστήματα Ροών Δεδομένων, Spark, Δομές RDDs. Εβδομάδα #5: Επισκόπηση της γλώσσας Python για Τεχνολογίες Αποκεντρωμένων Δεδομένων (Πρακτικό Μέρος: Τα βασικά βήματα για data manipulation με Python και PySpark). Εβδομάδα #6: Αποθήκευση και Επεξεργασία δεδομένων σε Αποκεντρωμένα Συστήματα. (Πρακτικό Μέρος: Ομαδική Επεξεργασία με την PySpark). Εβδομάδα #7: Αποθήκευση και Επεξεργασία δεδομένων σε Αποκεντρωμένα Συστήματα (Συν.). (Πρακτικό Μέρος: Ομαδική Επεξεργασία με την PySpark). Εβδομάδα #8: Μηχανική Μάθηση Μεγάλης Κλίμακας με την PySpark (Πρακτικό Μέρος: Υλοποίηση απλού μοντέλου μηχανικής μάθησης χρησιμοποιώντας το scikit-learn της python) Εβδομάδα #9: Μηχανική Μάθηση Μεγάλης Κλίμακας με την PySpark (Συν.). (Πρακτικό Μέρος: Υλοποίηση απλού μοντέλου μηχανικής μάθησης χρησιμοποιώντας το scikit-learn της python) Εβδομάδα #10: Μηχανική Μάθηση Μεγάλης Κλίμακας με την PySpark (Συν.). (Πρακτικό Μέρος: Υλοποίηση απλού μοντέλου μηχανικής μάθησης χρησιμοποιώντας την MLlib της PySpark ). Εβδομάδα #11: Μηχανική Μάθηση Μεγάλης Κλίμακας με την PySpark (Συν.). (Πρακτικό Μέρος: Υλοποίηση απλού μοντέλου μηχανικής μάθησης χρησιμοποιώντας την MLlib της PySpark ). Εβδομάδα #12: Προχωρημένα Θέματα και Μελέτες Περίπτωσης. (Πρακτικό Μέρος: Υλοποίηση ενός μεγάλου Project (ή πολλών μικροτέρων) συνδυάζοντας όλα τα προηγούμενα). Εβδομάδα #13: Προχωρημένα Θέματα και Μελέτες Περίπτωσης (Συν.). (Πρακτικό Μέρος: Υλοποίηση ενός μεγάλου Project (ή πολλών μικροτέρων) συνδυάζοντας όλα τα προηγούμενα).

Αξιολόγηση

Διαλέξεις και Ασκήσεις Πράξης που εστιάζουν στην εφαρμογή μεθοδολογιών και ανάλυση μελετών περίπτωσης σε μικρότερες ομάδες φοιτητών (30% - 50%) Υποστήριξη εργασίας (50% - 70%)

Βιβλιογραφία

Συνιστώμενη βιβλιογραφία προς μελέτη:

Spark: The Definitive Guide, by Bill Chambers, Matei Zaharia, Released February 2018, Publisher(s): O'Reilly Media, Inc., ISBN: 9781491912218.

PySpark Tutorial For Beginners (Spark with Python)

https://sparkbyexamples.com/pyspark-tutorial/

The Google File System: https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf

Map-Reduce: https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf

Hadoop: https://hadoop.apache.org/

Decentralized Frameworks for Future Power Systems 1st Edition - May 12, 2022 Mohsen Parsa Moghaddam, Reza Zamani, Hassan Haes Alhelou, Pierluigi Siano, ISBN: 9780323916981

Block-chain Basics: A Non-Technical Introduction in 25 Steps, Daniel Drescher, ISBN-13 (electronic): 978-1-4842-2604-9, DOI 10.1007/978-1-4842-2604-9, Copyright © 2017 by Daniel Drescher. https://app.scnu.edu.cn/iscnu/learning/block_chain/Blockchain%20basic.pdf

GENERAL

SCHOOL

ENGINEERING

ACADEMIC UNIT

CEID

LEVEL OF STUDIES

UNDERGRADUATED

COURSE CODE

CEID_NE1411

SEMESTER fall

COURSE TITLE

Decentralized Data Engineering

INDEPENDENT TEACHING ACTIVITIES if credits are awarded for separate components of the course, e.g. lectures, laboratory exercises, etc. If the credits are awarded for the whole of the course, give the weekly teaching hours and the total credits

WEEKLY TEACHING HOURS

CREDITS

2(l), 1(le)

5

Add rows if necessary. The organisation of teaching and the teaching methods used are described in detail at (d).

5

COURSE TYPE general background, special background, specialised general knowledge, skills development skills development

PREREQUISITE COURSES:

Data Structures, Multi-dimensional Data Structures, Object Oriented Programming, Databases, Principles on Programming Languages and Compilers

LANGUAGE OF INSTRUCTION and EXAMINATIONS:

Greek

IS THE COURSE OFFERED TO ERASMUS STUDENTS no

COURSE WEBSITE (URL)

https://eclass.upatras.gr/courses/CEID1411/

LEARNING OUTCOMES

Learning outcomes

The course learning outcomes, specific knowledge, skills and competences of an appropriate level, which the students will acquire with the successful completion of the course are described. Consult Appendix A Description of the level of learning outcomes for each qualifications cycle, according to the Qualifications Framework of the European Higher Education Area Descriptors for Levels 6, 7 & 8 of the European Qualifications Framework for Lifelong Learning and Appendix B Guidelines for writing Learning Outcomes

The course’s aim is to introduce students to the following two pillars:(1) Foundations of Advanced Decentralized Computing Systems (2) Practical Overview of non-traditional software systems for large scale data engineering (with emphasis in Spark, Python, and PySpark). Especially, it will focus on the following topics: 1. Hashing, Bloom Filters, Internet Caching Protocols, Distributed Hash Tables (DHTs). 2. Decentralized Data Structures and P2P Systems, DHT-based Decentralized Systems (Chord). 3. Block-Chain and Decentralized Applications (DAPPs): Hashing Data in the Real World, Storing Transaction Data, Using the Data Store, Protecting the Data Store, Distributing the Data Store Among Peers, Verifying and Adding Transactions, Choosing a Transaction History. 4. Hadoop, Distributed File Systems (HDFS), Map/Reduce Programming Framework and NoSQL Databases, Cluster Architecture, Data Flow Systems, Spark, RDDs. 5.Overview of Python for data engineering in Decentralized Systems Introduction to libraries and tools (pandas, NumPy, etc.) Introduction to PySpark Understanding PySpark's architecture and components 6.Data Storage and Processing in Decentralized Systems Data storage in decentralized systems Data processing in decentralized systems Batch processing (MapReduce, Spark) Stream processing (Spark Streaming, Flink) 7. Large Scale Machine Learning with PySpark Introduction to machine learning Large-Scale Machine learning Introduction to MLlib Overview of MLlib, PySpark's machine learning library Algorithms supported by MLlib (regression, classification, clustering, etc.) Distributed machine learning with PySpark Data preparation and feature extraction in PySpark Training and evaluation of machine learning models in PySpark 8.Advanced Topics and Case Studies Future trends in decentralized systems for large-scale data engineering Role of AI and machine learning in future developments IoT and Cloud Containers, Dockers, Kubernetes 9.Practical Part: Project (or mini-projects) combining concepts from previous lectures

General Competences

Taking into consideration the general competences that the degree-holder must acquire (as these appear in the Diploma Supplement and appear below), at which of the following does the course aim?

Search for, analysis and synthesis of data and information, with the use of the necessary technology Adapting to new situations Decision-making Working independently Team work Working in an international environment Working in an interdisciplinary environment Production of new research ideas

Project planning and management Respect for difference and multiculturalism Respect for the natural environment Showing social, professional and ethical responsibility and sensitivity to gender issues Criticism and self-criticism Production of free, creative and inductive thinking …… Others… …….

Lectures Practice exercises focusing on the application of methodologies and analysis of case studies to smaller groups of students Assignment support

SYLLABUS

Week #1: Hashing, Bloom Filters, Internet Caching Protocols, Distributed Hash Tables. Week #2: Decentralized Data Structures and P2P Systems, DHT-based Decentralized Systems (Chord). Week #3: Block-Chain and Decentralized Applications (DAPPs). Week #4: HDFS, Map/Reduce Programming Framework and NoSQL Databases, Cluster Architecture, Data Flow Systems, Spark, RDDs. Week #5: Overview of Python for data management in Decentralized Systems (Practical Part: Basic data manipulation with Python and PySpark). Week #6: Big Data Storage and Processing in Decentralized Systems. (Practical Part: Batch processing with PySpark). Week #7: Big Data Storage and Processing in Decentralized Systems (cont’d). (Practical Part: Batch processing with PySpark). Week #8: Large Scale Machine Learning with PySpark (Practical Part: Implementation of a simple machine learning model using Python's scikit-learn) Week #9: Large Scale Machine Learning with PySpark (Cont’d). (Practical Part: Implementation of a simple machine learning model using Python's scikit-learn) Week #10: Large Scale Machine Learning with PySpark (Cont’d). (Practical Part: Implementation of a machine learning model with PySpark's MLlib). Week #11: Large Scale Machine Learning with PySpark (Cont’d). (Practical Part: Implementation of a machine learning model with PySpark's MLlib). Week #12: Advanced Topics and Case Studies. (Practical Part: Project combining concepts from previous lectures). Week #13: Advanced Topics and Case Studies (Cont’d). (Practical Part: Project combining concepts from previous lectures).

TEACHING and LEARNING METHODS - EVALUATION

DELIVERY Face-to-face, Distance learning, etc.

face to face

USE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY Use of ICT in teaching, laboratory education, communication with students

Use of ICT in teaching

TEACHING METHODS The manner and methods of teaching are described in detail. Lectures, seminars, laboratory practice, fieldwork, study and analysis of bibliography, tutorials, placements, clinical practice, art workshop, interactive teaching, educational visits, project, essay writing, artistic creativity, etc.

The student's study hours for each learning activity are given as well as the hours of non-directed study according to the principles of the ECTS

STUDENT PERFORMANCE EVALUATION Description of the evaluation procedure

Language of evaluation, methods of evaluation, summative or conclusive, multiple choice questionnaires, short-answer questions, open-ended questions, problem solving, written work, essay/report, oral examination, public presentation, laboratory work, clinical examination of patient, art interpretation, other

Specifically-defined evaluation criteria are given, and if and where they are accessible to students.

Assignments (100%): Research Paper Presentation (30% - 50%) Project Implementation (50% - 70%)

ATTACHED BIBLIOGRAPHY

Bibliography:

Spark: The Definitive Guide, by Bill Chambers, Matei Zaharia, Released February 2018, Publisher(s): O'Reilly Media, Inc., ISBN: 9781491912218.

PySpark Tutorial For Beginners (Spark with Python)

https://sparkbyexamples.com/pyspark-tutorial/

The Google File System: https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf

Map-Reduce: https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf

Hadoop: https://hadoop.apache.org/

Decentralized Frameworks for Future Power Systems 1st Edition - May 12, 2022 Mohsen Parsa Moghaddam, Reza Zamani, Hassan Haes Alhelou, Pierluigi Siano, ISBN: 9780323916981

Block-chain Basics: A Non-Technical Introduction in 25 Steps, Daniel Drescher, ISBN-13 (electronic): 978-1-4842-2604-9, DOI 10.1007/978-1-4842-2604-9, Copyright © 2017 by Daniel Drescher. https://app.scnu.edu.cn/iscnu/learning/block_chain/Blockchain%20basic.pdf