From a58dc496c49e9c498a97b4eb32a97fa7a5c6fb54 Mon Sep 17 00:00:00 2001 From: William Petit Date: Wed, 5 Sep 2018 21:54:11 +0200 Subject: [PATCH] =?UTF-8?q?CESI:=20Intro=20Big=20Data=20-=20ajout=20exerci?= =?UTF-8?q?ce=20bdd=20cl=C3=A9/valeur=20et=20graphe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/img/Mapreduce.png | Bin 0 -> 38015 bytes cesi/intro_big_data/presentation/slides.md | 81 +++++++++++++++++- .../containers/hadoop/Dockerfile | 5 +- .../containers/hadoop/conf/supervisor.ini | 10 --- .../containers/hadoop/docker-entrypoint.sh | 8 ++ 5 files changed, 91 insertions(+), 13 deletions(-) create mode 100644 cesi/intro_big_data/presentation/img/Mapreduce.png create mode 100644 cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/docker-entrypoint.sh diff --git a/cesi/intro_big_data/presentation/img/Mapreduce.png b/cesi/intro_big_data/presentation/img/Mapreduce.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0dbeb942f4935751903435ba5b66b48cc92ff7 GIT binary patch literal 38015 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 literal 0 HcmV?d00001 diff --git a/cesi/intro_big_data/presentation/slides.md b/cesi/intro_big_data/presentation/slides.md index a1e35fa..c4d3e2d 100644 --- a/cesi/intro_big_data/presentation/slides.md +++ b/cesi/intro_big_data/presentation/slides.md @@ -67,10 +67,22 @@ William Petit - S.C.O.P. Cadoles ### Vitesse +La fréquence de génération de données ne cesse d'augmenter. Être en capacité de traiter ce flux constant de données en temps réel est un défi. + +> **Exemple** +> +> Sur Twitter, environ 500 millions de messages sont envoyés par jour sur la plateforme. C'est environ **6000 messages/seconde.** [Source](http://www.internetlivestats.com/twitter-statistics/) +> +> Sur Snapchat, sur le 3eme trimestre de 2017, les utilisateurs s'envoyaient jusqu'à **3.5 milliards de 'snap' par jour**. [Source](https://www.statista.com/statistics/257128/number-of-photo-messages-sent-by-snapchat-users-every-day/) + --- ### Variété +L'avancée de la technologie aidant, les types des données généréess aujourd'hui sont multiples: texte, image, vidéo, son mais aussi modèle 3D, transactions de cryptomonnaies... + +Toutes ces données prennent des formes extrêmement diverses. + --- ## Aperçu technique des solutions @@ -91,9 +103,18 @@ William Petit - S.C.O.P. Cadoles #### Le modèle "MapReduce" +- Inventé par Google +- Inspiré des méthodes `map()` et `reduce()` que l'on retrouve classiquement dans les langages dits "fonctionnels". +- Modèle qui permet de paralléliser massivement le traitement de données. +- Très adapté aux opérations de filtrage/aggrégation. + --- -### Présentation d'Apache Spark et Apache Storm +**Découpage du traitement** + +![center](./img/Mapreduce.png) + +[Source](https://fr.wikipedia.org/wiki/MapReduce#/media/File:Mapreduce.png) --- @@ -103,14 +124,63 @@ William Petit - S.C.O.P. Cadoles ### Base de donnée orientée clé/valeur +Mode de stockage représentant le corpus de données sous la forme d'un ou plusieurs tableaux associatifs. + +Chaque clé (unique au sein d'une même collection) est associée à une valeur, qui peut être de différents types suivant le moteur utilisé. + +- **Usage** Stockage temporaire (cache), index, séries chronologiques, base de données embarquées... +- **Exemples** [LevelDB](http://leveldb.org/), [Redis](https://redis.io/), [Memcached](https://www.memcached.org/) + +--- + +**Exercice** + +Implémenter avec le langage de votre choix une "micro" base de données embarquée orientée clé/valeur. Les données devront être persistentes. + +Votre implémentation devra permettre les opérations suivantes: + +- Sauvegarder une valeur associée à une clé +- Récupérer une valeur associée à une clé +- Itérer sur les clés existantes dans la base de données + +--- + +**Exemple d'API** +```js +cont bbd = new BDD("./my/file.db"); + +// Récupérer une clé dans la base de données +var val = bdd.get("my-key1"); + +// Enregistrer une valeur dans la base de données +bdd.set("my-key2", "foobar"); + +// Itérer sur le clés de la base de données +bdd.forEachKeys(function(key) { + console.log(key); +}); +``` + --- ### Base de données orientée document +Mode de stockage représentant les données sous la forme de collections de "documents". + +Un document est un objet comportant des attributs valués. Un attribut peut lui même être un objet. + +- **Usage** Stockage de données structurées (XML, JSON) avec ou sans schémas. +- **Exemples** [MongoDB](https://www.mongodb.com/), [Elasticsearch](https://www.elastic.co/) + --- ### Base de données orientée colonne +Mode de stockage organisant les données sous forme de colonnes plutot que par rang comme les bases de données SQL classiques. + +- **Usage** Stockage de données dédiées à l'analyse statistiques et aux opérations d'aggrégation/filtrage par colonne. +- **Exemples** [Apache HBase](https://github.com/apache/hbase) + --- ### Base de données orientée graphe @@ -170,13 +240,20 @@ Chaque personne a également les attributs suivants: --- - ## Exploitation des données et cadre légal --- ### Qu'est ce qu'une données à caractère personnel ? +> Toute information identifiant **directement ou indirectement** une personne physique (ex. nom, no d’immatriculation, no de téléphone, photographie, date de naissance, commune de résidence, empreinte digitale...). +> +> -- CNIL + +[Source](https://www.cnil.fr/fr/definition/donnee-personnelle) + --- ### Le RGPD + +[Voir la page de la CNIL](https://www.cnil.fr/fr/reglement-europeen-sur-la-protection-des-donnees-ce-qui-change-pour-les-professionnels) diff --git a/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/Dockerfile b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/Dockerfile index 6e199c9..e52b05f 100644 --- a/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/Dockerfile +++ b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/Dockerfile @@ -36,6 +36,9 @@ RUN ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &&\ COPY ./conf/supervisor.ini /etc/supervisor.d/hadoop.ini +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod +x /docker-entrypoint.sh + EXPOSE 9870 8088 -CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor.d/hadoop.ini"] \ No newline at end of file +CMD ["/docker-entrypoint.sh"] \ No newline at end of file diff --git a/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/conf/supervisor.ini b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/conf/supervisor.ini index 3143320..4ffb91a 100644 --- a/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/conf/supervisor.ini +++ b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/conf/supervisor.ini @@ -12,16 +12,6 @@ stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 priority = 0 -[program:namenode-format] -command = bin/hdfs namenode -format -directory = /opt/hadoop -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 -autostart = true -priority = 10 - [program:namenode] command = bin/hdfs --config etc/hadoop namenode directory = /opt/hadoop diff --git a/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/docker-entrypoint.sh b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/docker-entrypoint.sh new file mode 100644 index 0000000..faec0f0 --- /dev/null +++ b/cesi/intro_big_data/ressources/hadoop-compose/containers/hadoop/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -eo pipefail + +[ ! -e /var/container_run ] && bin/hdfs namenode -format +touch /var/container_run + +/usr/bin/supervisord -c /etc/supervisor.d/hadoop.ini \ No newline at end of file