21
Traitement de données massives avec Hadoop et R Alzennyr GOMES DA SILVA EDF R&D 11 Octobre 2012

HADOOP + R

  • Upload
    cornec

  • View
    9.024

  • Download
    0

Embed Size (px)

DESCRIPTION

Traitement massif de données avec R et Hadoop by Alzennyr Gomes Da Silva, EDF R&D

Citation preview

Page 1: HADOOP + R

Traitement de

données massives

avec Hadoop et R

Alzennyr GOMES DA SILVA

EDF R&D

11 Octobre 2012

Page 2: HADOOP + R

Plan

1. Introduction

2. Le « POC Hadoop » - projet SIGMA/EDF R&D

3. La technologie Hadoop

4. Traitement des données dans Hadoop avec

RHadoop et Mahout

– Etude de cas avec la méthode k-means

5. Conclusion

Page 3: HADOOP + R

Introduction

Facteurs qui contribuent à l’augmentation du volume de données

Le faible coût des dispositifs traditionnels de stockage de données

L’apparition de nouveaux dispositifs de communication (smart phones, tablettes, etc.)

L’utilisation des nouveaux médias sociaux (micro-blog, twitter, youtube, facebook, etc.)

On parle de « Big Data » ou de données massives

Page 4: HADOOP + R

Enjeux

Arrivée des compteurs communicants (smart meters)

Augmentation de la complexité des réseaux

électriques (smart grids)

www.smartgrids-cre.fr

Passage d’un modèle centralisé à un modèle distribué

Le projet SIGMA d’EDF R&D étudie les enjeux liés au passage

à l’échelle et au traitement de données massives

La gestion de données massives dans le domaine

de l’énergie

Réseaux électriques intelligents

source: CREcompteur Linky

Page 5: HADOOP + R

Il s’agit d’une étude de faisabilité sur la technologie Hadoop

Stockage de données massives de différentes natures

Courbes de charge individuelles1 mesure tous les 10 minutes pour 35 millions de clients / an

Volume annuel : 1800 milliards de registres

(120 TB de données brutes non compressées)

Données contractuelles, données météo, données du réseau

Implémentation d’un ensemble de scénarios type

Requêtes tactiques: ex. sélection d’une courbe de charge

individuelle et comparaison avec une moyenne

Requêtes analytiques: ex. calcul de synchrones

Requêtes ad-hoc

Requêtes Recoflux

POC (Proof Of Concept) avec Hadoop

Page 6: HADOOP + R

Technologie de stockage et traitement de données en mode distribué, parallèle

et extensible

Basé sur le framework de programmation distribuée MapReduce

Fonction Map (phase amont): décomposition des tâches et traitement de données en tant que paires (k, v)

Fonction Reduce (phase aval): consolidation des résultats et traitement de données en tant que paires (k, [vv])

Open source, écrit en langage Java et soutenu par la fondation Apache

http://hadoop.apache.org/

Prévu initialement pour le traitement de données non structurées

Peut être installé sur du matériel informatique standard

S’impose comme la solution open source de référence pour le « Big Data » déjà

adoptée par Facebook, eBay, Linkedin, Twitter, Yahoo, etc.

Page 7: HADOOP + R

Composants logiques

HDFS (Hadoop Distributed File System)

Hive (entrepôt de données « SQL-like »)

Backend : requêtes ETL, analytiques et ad-hoc

HBase (base de données orientée colonne)

Frontend: requêtes tactiques (faible latence et haute concurrence)

Architecture de la solution mise en place

Page 8: HADOOP + R

Ressources physiques

Cluster de 20 nœuds

Capacité totale : 132 TB ; 336 cœurs (AMD)

Architecture de la solution mise en place

Page 9: HADOOP + R

Le modèle de données

Volume de données

compressées sur

HDFS : 10 TB (x3)

Page 10: HADOOP + R

Les données chargées sur Hadoop

Page 11: HADOOP + R

Exemples de courbes de charge

Page 12: HADOOP + R

CourboGen © : générateur de courbes de charge massives

Génère les courbes de charges ainsi que les données associées

Outil customisable : durée de génération, intervalle de temps entre les mesures,

bruit, profils type, etc.

Architecture distribuée (NodeJS, Redis)

Données en sortie sous forme de flux

Visualisation de 35 millions de courbes de charges (1 semaine)

Page 13: HADOOP + R

Traitement des données dans

Hadoop avec Rhadoop et Mahout

Etude de cas avec la méthode k-means

Page 14: HADOOP + R

RHadoop

Collection de trois packages R permettant de gérer et d’analyser des données

stockées dans Hadoop à partir de l’environnement R

« rhdfs » : package de fonctions de manipulation de données stockées sur HDFS

« rhbase » : package de fonctions de manipulation de données stockées sur HBase

« rmr » : package de fonctions de codage du paradigme de programmation mapreduce

Tests exécutés sur les versions suivantes

Rhadoop : 1.3

R : 2.11.1

Hadoop : CDH3 de cloudera

Rhadoop est un package très récent (2011) utilisé par une communauté encore

restreinte

Toutes les fonctions à exécuter doivent être recodées à partir de la fonction

mapreduce du package rmr

Exécution de la méthode k-means proposée par l’auteur du package disponible sur

https://github.com/RevolutionAnalytics/RHadoop/blob/master/rmr2/docs/tutorial.md

Page 15: HADOOP + R

RHadoop

> tb_input_kmeans = mapreduce('/tmp/tb_kmeans_r.csv',

input.format = make.input.format('csv', sep=','),

structured = T,

vectorized = T,

map = function(k, v) keyval( v$V1 %% 35000 , v, vectorized = T),

reduce = function(k,vv) keyval(k , vv, vectorized = F),

backend.parameters =

list(hadoop = list(D ="mapred.reduce.tasks=200",D="mapred.map.tasks=200")),

verbose=T

)

> kmeans(tb_input_kmeans, ncenters = 20, iterations = 10, fast = T)

Données en entrée: fichier tb_kmeans_r.csv sur HDFS contenant

35 millions de lignes

1 dimension représentant la puissance moyenne journalière de chaque compteur

Script d’exécution de la méthode

Temps d’exécution

3.12 heures

Page 16: HADOOP + R

Mahout

Mahout est une collection de plusieurs méthodes d’analyse de données

programmées en Java avec le paradigme MapReduce

Mahout tourne sur Hadoop et est soutenu par la fondation Apache

http://mahout.apache.org/

Mahout dispose d’une communauté d’utilisateurs / développeurs très active

L’ensemble de méthodes disponibles est en constante augmentation

clustering, classification, filtrage collaboratif, analyse d’items fréquents, etc.

La version de k-means utilisée est celle fournie avec Mahouthttps://cwiki.apache.org/MAHOUT/k-means-clustering.html

Page 17: HADOOP + R

Mahout

Données en entrée: dossier tb_input_kmeans sur HDFS contenant

35 millions de lignes

1 dimension représentant la puissance moyenne journalière de chaque compteur

Script d’exécution de la méthode

$ mahout org.apache.mahout.clustering.conversion.InputDriver

--input /user/hive/warehouse/sigma.db/tb_input_kmeans

--output /user/sigma/outputvector/

$ mahout kmeans

--input /user/sigma/outputvector/

-c clusters -k 20 --output /user/sigma/output

-dm org.apache.mahout.common.distance.EuclideanDistanceMeasure

--maxIter 15 --overwrite --clustering

Temps d’exécution

17 minutes

Page 18: HADOOP + R

Conclusions

Bilan de la solution Hadoop

Avantages

• Faible coût

• Capable de gérer données structurées et non structurées

• Capable de recycler le matériel informatique existant

• Envisageable pour un usage non-critique

• Tolérant aux pannes (la perte d’un disque ou d’un nœud n’implique pas forcement la perte des données)

Inconvénients

• Niveau de maturité encore insuffisant pour le milieu industriel

• Peu de retours d’expérience dans l’industrie

• Manque de compétences assez marqué (prise en main de la solution, tuning des paramètres de configuration, etc.)

Page 19: HADOOP + R

Conclusions

Bilan des bibliothèques testées

RHadoop

• Gratuite et soutenue par une communauté d’utilisateurs encore restreinte

• Exécutée dans l’ environnement R et peut bénéficier de toutes ses fonctionnalités

• Une étape d’optimisation et de tuning des méthodes est nécessaire

• Il s’agit d’une bibliothèque puissante et très prometteuse

Mahout

• Gratuite et soutenue par une communauté d’utilisateurs très active

• Exécutée directement sur HDFS

• Les méthodes codées sont stables et performantes

Page 20: HADOOP + R

Remerciements

Membres du projet SIGMA d’EDF R&D

Leeley D. P. dos Santos

Bruno Jacquin

Marie-Luce Picard

David Worms

Charles Bernard

Page 21: HADOOP + R

Références

A proof of concept with Hadoop: storage and analytics of electrical time-series.

Marie-Luce Picard, Bruno Jacquin, Hadoop Summit 2012, Californie, USA, 2012.

présentation : http://www.slideshare.net/Hadoop_Summit/proof-of-concent-with-hadoop

vidéo: http://www.youtube.com/watch?v=mjzblMBvt3Q&feature=plcp

Massive Smart Meter Data Storage and Processing on top of Hadoop.

Leeley D. P. dos Santos, Alzennyr G. da Silva, Bruno Jacquin, Marie-Luce Picard, David Worms,Charles

Bernard. Workshop Big Data 2012, Conférence VLDB (Very Large Data Bases), Istambul, Turquie, 2012.

http://www.cse.buffalo.edu/faculty/tkosar/bigdata2012/program.php

Hadoop: The Definitive Guide. Tom White. O’Reilly Media, original edition, June 2009.

Parallel R, Q. Ethan McCallum, Stephen Weston, O'Reilly Media, Inc., 2011

Package RHadoop: https://github.com/RevolutionAnalytics/RHadoopv