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.
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Hadoop HIVE & PHP au service de L'OpenData
1. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Analytics
l’Open Data Démos
Le BigData au service de l’OpenData
#PHPTOUR
NANTES 2012
Stéphane Raymond
@sraymond38
www.stephane-raymond.com/blog/
2. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Environnement
le BigData
Analytics
l’Open Data Démos
‣ L’entreprise : objectif de rentabilité
‣ proposition de valeur
‣ segmentation / Accès au marché
‣ relation client / Amélioration
‣ 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
3. L’entreprise et le BigData Environnement
Le bigData au service de Solutions techniques le BigData
Analytics
l’Open Data Démos
‣ Cycle de vie du BigData
‣ Source multiple
‣ Capacité d’analyse
‣ Temps d’adaptation
‣ Interactions
4. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Approche possible
Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Architecture technique
‣ Hadoop : le coeur de notre architecture
5. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Hadoop
‣ framework
‣ fS distribué : HDFS
‣ implémentation du paterne MAP / REDUCE
‣ parallèlisation des Jobs & distribution sur un cluster
‣ Fait pour du traitement massif !
‣ 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
6. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Organisation des services d’Hadoop
7. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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
8. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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
9. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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
10. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Harmonisation des sources
11. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Le pattern Map / Reduce
12. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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»
13. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Utilisation du streamer Hadoop et de PHP
#!/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 &
14. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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éducer
echo json_encode($row);
?>
15. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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 Hadoop
foreach () {
....echo $ip . chr(9) . $ref . chr(9) . $nav . chr(9) . $domain . chr(9) .
$v_count->count , PHP_EOL;
}
?>
16. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
DEMO c’est pour bientôt :)
17. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ Extraction des données
18. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ 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
19. L’entreprise et le BigData Approche possible
Le bigData au service de Solutions techniques Hadoop
Analytics Intégration des données
l’Open Data Démos Extraction des données
‣ HIVE
‣ Schéma de table à la MySQL : Metastore
‣ metastore en local : un seul user associé
‣ utilisation de Cassandra pour stocker le Metastore
‣ Lien direct avec le HDFS
‣ Langage pseudo SQL : HiveQL (HQL)
‣ Index
‣ Utilisation de M/R pour extraire les données
20. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Analytics
l’Open Data Démos
‣ Real Time Analytics
‣ Hbase / PIG
‣ Cassandra |Neo4j |MongoDB |MySQL ...
‣ Interaction avec PHP via Thrift
21. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Intégration des données
Extraction des données
Analytics
l’Open Data Démos
DEMO’S
22. L’entreprise et le BigData
Le bigData au service de Solutions techniques
Analytics
l’Open Data Démos
Merci de votre attention
#Questions ?
Stéphane Raymond
@sraymond38