22
Le bigData au service de l’Open Data Le BigData au service de l’OpenData #PHPTOUR NANTES 2012 Stéphane Raymond @sraymond38 www.stephane-ray mond.com/blog/ L’entreprise et le BigData Solutions techniques Analytics Démos

Hadoop HIVE & PHP au service de L'OpenData

Embed Size (px)

DESCRIPTION

L’entreprise n’a jamais été aussi bien armée qu’aujourd’hui, pour maîtriser son «mix marketing» et pérenniser ainsi, sa croissance économique. L’ouverture des données publiques ou OpenData, conjuguée à la collecte d’informations sur ses clients (réseaux sociaux ; site corporate ; site de vente en ligne etc), lui permet de comprendre le comportement d'achat de ses clients, anticiper certains risques et imaginer de nouveaux services. L'entreprise est-elle bien armée pour analyser et stocker ces données massives ? (BigData). Je vous propose de découvrir comment PHP peut être utilisé au sein d'un cluster Hadoop.

Citation preview

Page 1: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

Le BigData au service de l’OpenData#PHPTOUR

NANTES 2012

Stéphane Raymond@sraymond38

www.stephane-raymond.com/blog/

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 2: Hadoop HIVE & PHP au service de L'OpenData

‣ L’entreprise : objectif de rentabilité

Environnementle BigDataLe bigData au service de

l’Open Data

‣ Analyser & capable d’anticiper‣ connaissance de son marché ?

‣ les autres sources ?

‣ le web (communication & canal de vente)

‣ évènements sociaux économiques (micro & macro)

‣ données publiques

‣ proposition de valeur

‣ segmentation / Accès au marché

‣ relation client / Amélioration

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 3: Hadoop HIVE & PHP au service de L'OpenData

‣ Cycle de vie du BigData

Le bigData au service de l’Open Data

Environnementle BigData

‣Source multiple

‣Capacité d’analyse

‣Temps d’adaptation

‣Interactions

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 4: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

Approche possibleHadoopIntégration des donnéesExtraction des données

‣ Architecture technique

‣ Hadoop : le coeur de notre architecture

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 5: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Hadoop

‣ Fait pour du traitement massif !

‣ framework

‣ fS distribué : HDFS

‣ implémentation du paterne MAP / REDUCE

‣ parallèlisation des Jobs & distribution sur un cluster

‣ plus il y a de données à traiter et plus il est heureux

‣ il y a un point névralgique

‣ pas simple à bien paramétrer

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 6: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Organisation des services d’Hadoop

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 7: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Les directives de configuration importantes

‣ core-site.xml :

• fs.default.name

‣ hdfs-site.xml :

• dfs.data.dir & dfs.name.dir

• dfs.replication

‣ mapred-site.xml :

• mapred.job.tracker

• mapred.tasktracker.map.tasks.maximum

• mapred.tasktracker.reduce.tasks.maximum

• mapred.[map | reduce].max.attempts & red

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 8: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Accès aux données sur le HDFS

‣ 1 requête du client

• hadoop fs -cat assets/2012/10/16/10.log

‣ 2 : Contact du NameNode

• => quel DataNode appeler

‣ 3 : Le client contact directement le DataNode cible

• => affichage du contenu de 10.log

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 9: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Pousser des données sur le HDFS‣ 1 requête du client

• zcat 10.log.gz | hadoop dfs -put - assets/2012/10/17/10.log

‣ 2 : Contact du NameNode

• => sélection d’un Node comme «master»

‣ 3 : Ecriture sur le master et les autres Nodes

‣ 4 : Ecriture terminée

• 4.1 Commit sur le master

• 4.2 Commit sur les autres Nodes

‣ 5 : Enregistrement des MetaData par le NameNode

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 10: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Harmonisation des sources

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 11: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Le pattern Map / Reduce

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 12: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Utilisation du streamer Hadoop et de PHP

‣ 1 Un bootstrap‣ lancement du job Hadoop avec «hadoop-streaming»(HS)

‣ définition des variables d’exécutions pour «hadoop-streaming»

‣ chargement des données dans le HDFS

‣ exécution du Job

‣ 2 : Un script php pour le MAP‣ réception des données sur «stdin» par hadoop-streaming

‣ echo du traitement sur «stdout»

‣ 3 : Un script php pour le Reduce‣ réception des données sur «stdin» par hadoop-streaming

‣ echo du traitement sur «stdout»

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 13: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

#!/bin/bash...#Création du répertoire de travail sur le HDFS$HADOOP_HOME_BIN/bin/hadoop fs -mkdir $HDFS_INPUT

#Définition du répertoire où sera entreposé le résulta du Job.HDFS_OUTPUT='OUTPUT/PHP-TOUR-NANTES-2012'

#On dépose le ou les fichiers de log a traiter$HADOOP_HOME_BIN/bin/hadoop fs -put $PATH_LOG/* $HDFS_INPUT

#Map / Reduce en action$HADOOP_HOME_BIN/bin/hadoop jar \$HADOOP_HOME_BIN/contrib/streaming/ $STREAM_JAR_NAME \-D mapred.job.priority='VERY_HIGH' \-D mapred.job.name="php-tour-nantes-2012" \-D mapred.map.tasks=2 \-D mapred.reduce.tasks=1 \-input $HDFS_INPUT \-output $HDFS_OUTPUT \-mapper map.php \-reducer reduce.php \-file $APP_PATH/map.php \-file $APP_PATH/reduce.php &

‣ Utilisation du streamer Hadoop et de PHP

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 14: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Utilisation du streamer Hadoop et de PHP

<?php$ressources = fopen('php://stdin', 'r');$row = new stdClass();

while ( ($line = fgets($ressources)) !== false) {

## TRAITEMENT D’AGREGATION}//utilisé en input sur le ou les Réducerecho json_encode($row);?>

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 15: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Utilisation du streamer Hadoop et de PHP

<?php$ressources = fopen('php://stdin', 'r');$row = new stdClass();

while ( ($line = fgets($ressources)) !== false) {## TRAITEMENT D’AGREGATION

}## Output sur le Reducer : enregistrement des lignes dans Hadoopforeach () {....echo $ip . chr(9) . $ref . chr(9) . $nav . chr(9) . $domain . chr(9) . $v_count->count , PHP_EOL;}

?>

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 16: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

DEMO c’est pour bientôt :)

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 17: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Extraction des données

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 18: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Extraction des données‣ Besoin de mettre à disposition des datas pour

L’analytics‣ valider des indicateurs de production,

‣ réaliser des modèles prédictifs : Utilisation de donnée massive sur de grande période,

‣ chercher quelque chose, mais on ne sait pas encore quoi :)

‣ structurer la data sur le HDFS !

‣ Utilisation de «DataWareHouse»

‣ mapping,

‣ langage de requêtes,

‣ utilisation de M/R

‣ interaction avec d’autre SGBD NoSQL ou SQL like

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 19: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ HIVE

‣ Langage pseudo SQL : HiveQL (HQL)

‣ Lien direct avec le HDFS

‣ Index

‣ Utilisation de M/R pour extraire les données

‣ Schéma de table à la MySQL : Metastore‣ metastore en local : un seul user associé

‣ utilisation de Cassandra pour stocker le Metastore

Approche possibleHadoopIntégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 20: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

‣ Real Time Analytics‣ Hbase / PIG

‣ Cassandra |Neo4j |MongoDB |MySQL ...

‣ Interaction avec PHP via Thrift

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 21: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

DEMO’S

Intégration des donnéesExtraction des données

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos

Page 22: Hadoop HIVE & PHP au service de L'OpenData

Le bigData au service de l’Open Data

Merci de votre attention#Questions ?

Stéphane Raymond@sraymond38

L’entreprise et le BigDataSolutions techniques

AnalyticsDémos