HOGESCHOOL ROTTERDAM / CMI CMIENSBDH BIG DATA PROCESSING MET HADOOP Aantal studiepunten: 4 Modulebeheerder: R. Bakker INFANL01-3 1
Modulebeschrijving CMIENSBDH Cursusnaam: BIG DATA PROCESSING MET HADOOP Modulecode: CMIENSBDH Aantal studiepunten De module CMIENSBDH levert in totaal 4 studiepunten op. en Dit komt overeen met een studielast van 112 uren. studiebelastinguren: De verdeling van deze 112 klokuren over de collegeweken is als volgt: Begeleide uren: totaal Gedurende 8 weken: 8 * 150 minuten 20 uur Onbegeleide uren: Zelfstudie / voorbereiding op lessen 8 * 4 uur 32 uur Uitwerken van opdrachten 8 * 5 uur 40 uur Voorbereiding en deelname schriftelijk tentamen 20 uur Totaal: 112 uur Vereiste voorkennis: Operating systems (Unix/Linux), relationele databases (SQL) Werkvormen: In theorielessen worden verschillende concepten uitgelegd. Vervolgens pas je de theorie toe door het uitwerken van opdrachten. Toetsing: Je hebt de module behaald als je practicumopdrachten zijn goedgekeurd en voor de theorietoets (gesloten boek) minimaal een 5,5 hebt gehaald. Leermiddelen: Draagt bij aan competenties: Leerdoelen: Na deze module: heeft de student kennis over Hadoop Fundamentals I bij Big Data University met succes afgerond heeft de student de cursus Query Languages for Hadoop bij Big Data University met succes afgerond kan de student werken met Hadoop kan de student werken met Pig en Hive kan de student een data set importeren naar Hadoop en queries uitvoeren. begrijpt de student het MapReduce principe en kan hij/zij dit toepassen bij parallellisatie van algoritmen Inhoud: Opmerkingen: Aanwezigheid is verplicht. Modulebeheerder: Ahmad Omar Datum: 2014 ; v 0.1 INFANL01-3 2
1. Algemene omschrijving 1.1 Inleiding Apache Hadoop * is een open source Java framework voor de verwerking en het bevragen van grote hoeveelheden gegevens op grote clusters van commodity hardware. Hadoop is inmiddels de de facto industrie standaard voor big data processing. Hadoop bestaat uit een aantal subprojecten waarvan binnen deze module de volgende aan de orde komen: Hadoop Common: The common utilities that support the other Hadoop subprojects. HDFS: A distributed file system that provides high throughput access to application data. MapReduce: A software framework for distributed processing of large data sets on compute clusters. Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying. Pig: A high-level data-flow language and execution framework for parallel computation. ZooKeeper: A high-performance coordination service for distributed applications. 1.2 Relatie met andere onderwijseenheden Vereiste voorkennis: Unix/Linux, SQL, CISCO 1.3 Leermiddelen Het volgende boek is verplicht: Tom White. Hadoop: The. 3rd Ed. O Reilly 2012. ISBN 1449311520 Overige literatuur: Chuck Lam. Hadoop in Action. Manning 2010. Lars George. HBase: The. O Reilly 2011. Alan Gates. Programming Pig. O Reilly 2011. Edward Capriolo. Programming Hive. O Reilly 2012. Eric Sammer. Hadoop Operations. O Reilly 2012. David Miner. MapReduce design patterns. O Reilly 2012. T. Nadeau and K. Gray, SDN, O Reilly, 2013. Pramod J. Sadalage and Martin Fowler, NoSQL Distilled, Addison-Wesley Professional, 2012. INFANL01-3 3
2. Programma In onderstaande tabel zie je hoe de onderwerpen binnen de module over de lesweken tijdens de onderwijsperiode zijn verdeeld. Een les bestaat uit drie lesuren met zowel theorie als praktijk. Wk Onderwerp Lesinhoud Huiswerk Literatuur 1 Big Data en Inleiding Hadoop - Big Data Fundamentals University Big Data (Hadoop, SDN, NoSQL) 2 Hadoop MapReduce( YARN) 3 Hadoop HDFS 4 Hive/Pig Hadoop installatie VM, LCX, Docker MapReduce Werken met HDFS Wordcount in Java Replicatie Flume/SQOOP Avro Zookeeper Weather data with Hive and Pig Expermiment with - Hadoop Fundamentals I V3 - Moving data into Hadoop - Accessing Hadoop Data Using Hive -Introduction to Pig queries Deadline 1 5 Presentaties - Practicumopdracht A 6 NoSQL Software Defined Netwokig mininet Inleiding NoSQL Databasetypen Inleiding OpenStack Polyglot Persistence NoSQL databasees CAP Theorem Hadoop Mininet openstack University University University CAP Paper 1 Polyglot Persistence 2 NoSQL Database 3 SDN Architectuur 7 Afronding Software Defined Networking SDN 4 Deadline 2 8 - Practicumopdracht B/C Eisen aan producten en rapporten Elk product dat je inlevert, is voorzien van titel, naam, klas, studentnummer, datum en modulecode. Teksten voldoen aan de regels voor spelling en grammatica. Rapporten zijn bovendien voorzien van inhoudsopgave, koppen, tussenkoppen en paginanummering. 1 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.6951&rep=rep1&type=pdf 2 http://martinfowler.com/articles/nosql-intro-original.pdf 3 http://www.academia.edu/4112230/improving_the_availability_of_nosql_databases_for_clo ud_storage 4 https://www.clear.rice.edu/comp529/www/papers/tutorial_4.pdf INFANL01-3 4
3. Toetsing en beoordeling 3.1 Procedure Deze module wordt getoetst dmv 1. het succesvol afronden van de cursus Hadoop Fundamentals, Hive en Pig bij Big Data University (15 punten) en het behalen van certificaten. 2. een practicumopdracht (85 punten mits schriftelijke toets voldoende) 3.2 Practicumopdracht tijdens de les(45 punten) Opdracht A (15 punten): 1) Installeer Hadoop single node op je laptop: a) Ubuntu LTS b) Hadoop i) https://wiki.apache.org/hadoop/hadoop2onwindows ii) http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoopcommon/singlenodesetup.html 2) Programeer een Hadoop applicatie/job in java die gebruik maakt van de MapReduce interface. Je applicatie berekend de gemiddelde temperatuur per jaar uit databronnen. Een uitleg over deze opdracht staat in het boek Hadoop: The vanaf hoofdstuk 2. Download de weather datasets (zie link hieronder). https://github.com/tomwhite/hadoop-book/tree/master/input/ncdc/all 3) Programmeer de weather applicatie in Hive en Pig. De resultaten moeten hetzelfde zijn(hoofdstuk 11 en 12). Opdracht B (40 punten) 1) Download een van de datasets van de website http://grouplens.org/datasets/ en analyseer deze data door middel van Java applicatie, Hive en Pig. Je mag zelf een scenario bedenken voor de analyse. Je mag pas beginnen als je een goedkeuring krijgt voor je case. 2) Schrijf een verslag over je case. Je verslag moet de volgende vragen voldoende beantwoorden: i) Waarom wordt Hadoop bij deze opdracht gebruikt? ii) Welke eisen worden gesteld aan de serveromgeving en de applicatie om je java applicatie optimaal te kunnen uitvoeren in een Hadoopomgeving (hardware en software)? iii) Wanner is Hadoop Distributed Filesystem nodig? Welke impact heeft de inzet van HDFS op je applicatie. iv) Hoe werken HDFS en YARN samen? v) Waarom worden Hive en Pig ingezet? vi) Wat zijn de verschillen tussen Hive en Pig? vii) Hoe werkt de applicatie in Java, Pig en Hive(leg je code/queries uit, maak screenshots en)? viii) Wat is je conclusie? Inleveren: (a) verslag van de opdracht inclusief duidelijk geformuleerde onderzoeksvraag, code, screenshots, conclusie en discussie over de techniek die het meest geschikt is voor dit vraagstuk (10 15 pagina s). (b) 3 werkende applicaties INFANL01-3 5
Opdracht C: Je hebt een keuze tussen deze twee opdrachten (30 punten): - Onderzoek de werking van Hadoop en software defined networking SDN met mininet, Hiervoor kun je gebruik maken van openstack en mininet. Denk hier aan het opzetten van een cloud service voor data processing met Hadoop. Je moet je casus eerst afstemmen met de docent voor het start. - Onderzoek de werking van Hadoop en een van de NoSQL zoals graph of document database op basis van een zelf bedachte case. Bedenk een toepassing scenario. Beschrijf de eisen aan het systeem en de werking van je applicatie. Je moet je casus eerst afstemmen met de docent voor het start Inleveren: i) Verslag van de opdracht inclusief duidelijk geformuleerde onderzoeksvraag, code, screenshots, conclusie en discussie over de techniek die het meest geschikt is voor dit vraagstuk (10 15 pagina s). ii) Werkende applicatie Aanvullende bronnen voor de opdrachten: OpenStack : http://docs.openstack.org/index.html Mininet: https://github.com/mininet/mininet/wiki/documentation DevStack: http://docs.openstack.org/developer/devstack/ Project Savana: https://savanna.readthedocs.org/en/0.3/userdoc/features.html Neo4J: http://neo4j.com/ mongodb: http://www.mongodb.org/ 3.3 Herkansing Opdracht B en C moet opnieuw gedaan worden. De casus wordt later bekend gemaakt. 2.4 Cijfer Individueel Per certificaat 5 punten (max 15 punten) Practicumopdracht (max 85 punten) (door beoordeling van presentaties en een interview wordt het individuele cijfer bepaald) Eindcijfer = Certificaten + Practicum = Aantal punten /10 Minimaal moet je 5.5 scoren voor een voldoende INFANL01-3 6