SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Stats Web avec Hive

   Cas pratique avec
Il était une fois…

Et, et, hadoop est arrivé…
Des stats
Des stats avancées
Encore des stats
Des évènements
•   PageViewEvent
•   PostCurationEvent
•   SearchEvent
•   CommentEvent
•   ShareEvent
•   TopicDeletionEvent
•   UserDeletionEvent
•   …
Première version
•   Compteur de vues : mysql
•   Compteur de visiteurs : mysql
•   Stockages des évènements : mysql
•   Stats par source : Google Analytics
•   Stats par pays : Google Analytics
•   Analyse des évènements : SQL
Rançon du succès
• Taux d’écriture dans mysql
  – Quick fix:




• Espace de stockage
• Google Analytics API lente et approximative
Les besoins
•   Compteur de vues : calcul temps réel
•   Compteur de visiteurs : calcul 1 fois par jour
•   Stockages des évènements : fichiers « à plat »
•   Stats par source : calcul 1 fois par jour
•   Stats par pays : calcul 1 fois par jour
•   Analyse des évènements : à la demande et
    régulièrement
Solution
•   Compteur de vues : Cassandra
•   Compteur de visiteurs : Hive
•   Stockages des évènements : ad hoc HDFS
•   Stats par source : Hive
•   Stats par pays : Hive
•   Analyse des évènements : Hive
Cassandra vs Hbase
• Hbase:
  – « open-source, distributed, versioned, column-
    oriented store modeled after Google's Bigtable »
  – « Bigtable-like capabilities on top of Hadoop and
    HDFS »
• Cassandra:
  – « a BigTable data model running on an Amazon
    Dynamo-like infrastructure »
Cassandra vs Hbase
• Pro Hbase
  – Cluster Hadoop déployé
  – Hive supporte Hbase
• Pro Cassandra
  – Cluster « temps réel » vs cluster « asynchrone »
  – Pas de SPOF (cf Hadoop Namenode)
  – Opérationnellement simple
Hive vs Pig
• Pig
  – « high-level language for expressing data analysis
    programs »
  – « compiler that produces sequences of Map-
    Reduce programs »
• Hive
  – « data warehouse system for Hadoop »
  – « query the data using a SQL-like language »
Hive vs Pig
• Pro Pig:
  – Plus près de l’algorithme Map-Reduce
• Pro Hive
  – SQL-like
ad hoc HDFS vs Flume
• Flume
  – « distributed, reliable, and available service for
    efficiently collecting, aggregating, and moving
    large amounts of log data »
ad hoc HDFS vs Flume
• Pro Flume
  – Fault tolerent
  – Streaming
  – Scalable
  – Agrégation
• Anti Flume
  – Encore une techno à déployer
  – Encore une techno à apprendre
  – Volume de données encore « faible »
Architecture de Hive




  Source: http://www.javabloger.com/article/apache-hive-jdbc-mapreduce.html
• « workflow scheduler system to manage
  Apache Hadoop jobs »
• Support de Hive

Mais:
• XML comme si il en pleuvait
• Projet en beta en 2011
• Page d’analytics « privée » ?
Scoop-mapred
• Spring MVC webapp
• Embedded Hive
• Quartz Scheduler
Architecture
                        Cassandra
                         Cassandra
                           Cassandra
    view++                                                      Scoop-mapred
             getViews
               getVisitors
                  getTopicSources
scoop                                    TaskTracker             Launch Jobs
  scoop
     web                                   TaskTracker
  frontend                                   TaskTracker

                                                           Launch
                                                           maps &
                                                           reduces   JobTracker
                                                           tasks

                                HDFS
                                 HDFS
                                  HDFS
Calculs Map/Reduce

     Via HiveQL
Hive : CREATE TABLE
CREATE TABLE httpdlogs
   (ip STRING, domain STRING, user STRING,
   date STRING, method STRING, request STRING,
   protocol STRING, status INT, bodySize INT,
   referer STRING, useragent STRING);

LOAD DATA INPATH '/var/log/site_access.log' INTO TABLE
httpdlogs;

SELECT status, COUNT(*) FROM httpdlogs
   WHERE referer = 'www.google.com' GROUP BY status;
Hive : INSERT INTO TABLE
CREATE TABLE google_httpdlogs
   (ip STRING, user STRING, date STRING);

INSERT INTO TABLE google_httpdlogs
   SELECT ip, date FROM httpdlogs WHERE referer LIKE
'%google%';

SELECT * FROM google_httpdlogs WHERE date > '2012-01-15';
Hive : CREATE EXTERNAL TABLE
CREATE EXTERNAL TABLE PageViewEvent
   (date STRING, uri STRING, querystring STRING,
   useragent STRING, referer STRING, ip STRING, …)
   PARTITIONED BY (day STRING)
   ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' LINES
   TERMINATED BY 'n'
   LOCATION '/events/PageViewEvent';

ALTER TABLE PageViewEvent ADD PARTITION (day='20121205')
LOCATION '/events/PageViewEvent/20121205';

SELECT COUNT(*) FROM PageViewEvent
    WHERE day = '20121205' AND date > '2012-12-05 12:00:00' AND
       date < '2012-12-05 13:00:00'
Hive : CREATE ‘Cassandra’ TABLE
CREATE EXTERNAL TABLE CassandraTopicVisitors
   (themeid BIGINT, day STRING, visitors INT)
   STORED BY 'org...cassandra.hadoop.hive.CassandraStorageHandler'
   WITH SERDEPROPERTIES
   ('cassandra.columns.mapping'=':key,:column,:value',
   'cassandra.cf.name'='TopicVistors', 'cassandra.host'='cassandra-1',
   'cassandra.port'='9160')
   TBLPROPERTIES ('cassandra.ks.name’='topic');

INSERT INTO TABLE CassandraTopicVisitors
   SELECT themeid, '2012-12-05', COUNT(DISTINCT userid)
   FROM PageViewEvent WHERE day = '20121205' GROUP BY themeid;
CassandraStorageHandler
• Patches:
   – https://issues.apache.org/jira/browse/CASSANDRA-913
   – https://issues.apache.org/jira/browse/HIVE-1434


• En écriture : nickel
• En lecture : à éviter / à tester
Demo
Bilan

Après 1 an d’utilisation
Les machines
• 4 machines (Intel Xeon 1.87GHz, 8G RAM)
HDFS et les petits fichiers
$ sudo hadoop-fuse-dfs dfs://namenode:8020 ro hdfs

$ du -sh hdfs/events
78G hdfs/events

$ ls -l hdfs/events/GrabbedPostEvent/20121201/grabbing.10.tsv.gz
-rw-r--r-- 1 99 99 2,6M 2012-12-01 07:04 hdfs/events/GrabbedPo[...]

$ ls -l hdfs/events/PageViewEvent/20121201/web-3.6.tsv.gz
-rw-r--r-- 1 99 99 960K 2012-12-01 04:47 hdfs/events/PageViewE[...]

$ du -sh hdfs/apache_logs
360G hdfs/apache_logs
Big Data ?
• Hadoop surdimensionné
• Architecture non triviale
• Déploiement non trivial
                        ~
• Scallable
• Hive rocks : SQL => Map/reduce
• Datamining / Recommendation

Contenu connexe

Tendances

Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
De 20 000 à 4 millions d'utilisateurs : mode d'emploi
De 20 000 à 4 millions d'utilisateurs : mode d'emploiDe 20 000 à 4 millions d'utilisateurs : mode d'emploi
De 20 000 à 4 millions d'utilisateurs : mode d'emploiKhanh Maudoux
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMathieu Dumoulin
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big dataacogoluegnes
 

Tendances (20)

Hadoop unit
Hadoop unitHadoop unit
Hadoop unit
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Introduction à Hadoop
Introduction à HadoopIntroduction à Hadoop
Introduction à Hadoop
 
Hortonwork
HortonworkHortonwork
Hortonwork
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Hadoop unit
Hadoop unitHadoop unit
Hadoop unit
 
Hadoop
HadoopHadoop
Hadoop
 
De 20 000 à 4 millions d'utilisateurs : mode d'emploi
De 20 000 à 4 millions d'utilisateurs : mode d'emploiDe 20 000 à 4 millions d'utilisateurs : mode d'emploi
De 20 000 à 4 millions d'utilisateurs : mode d'emploi
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifié
 
Hadoop unit
Hadoop unitHadoop unit
Hadoop unit
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big data
 

En vedette

Techdays2015 big data-realtime
Techdays2015 big data-realtimeTechdays2015 big data-realtime
Techdays2015 big data-realtimeRomain Casteres
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Apache Phoenix: Transforming HBase into a SQL Database
Apache Phoenix: Transforming HBase into a SQL DatabaseApache Phoenix: Transforming HBase into a SQL Database
Apache Phoenix: Transforming HBase into a SQL DatabaseDataWorks Summit
 
Taming HBase with Apache Phoenix and SQL
Taming HBase with Apache Phoenix and SQLTaming HBase with Apache Phoenix and SQL
Taming HBase with Apache Phoenix and SQLHBaseCon
 
A Survey of HBase Application Archetypes
A Survey of HBase Application ArchetypesA Survey of HBase Application Archetypes
A Survey of HBase Application ArchetypesHBaseCon
 
Apache Phoenix and Apache HBase: An Enterprise Grade Data Warehouse
Apache Phoenix and Apache HBase: An Enterprise Grade Data WarehouseApache Phoenix and Apache HBase: An Enterprise Grade Data Warehouse
Apache Phoenix and Apache HBase: An Enterprise Grade Data WarehouseJosh Elser
 
HBase for Architects
HBase for ArchitectsHBase for Architects
HBase for ArchitectsNick Dimiduk
 
Hw09 Practical HBase Getting The Most From Your H Base Install
Hw09   Practical HBase  Getting The Most From Your H Base InstallHw09   Practical HBase  Getting The Most From Your H Base Install
Hw09 Practical HBase Getting The Most From Your H Base InstallCloudera, Inc.
 
Chicago Data Summit: Apache HBase: An Introduction
Chicago Data Summit: Apache HBase: An IntroductionChicago Data Summit: Apache HBase: An Introduction
Chicago Data Summit: Apache HBase: An IntroductionCloudera, Inc.
 
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)Microsoft Décideurs IT
 
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014francelabs
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 

En vedette (19)

Techdays2015 big data-realtime
Techdays2015 big data-realtimeTechdays2015 big data-realtime
Techdays2015 big data-realtime
 
HBase杂谈
HBase杂谈HBase杂谈
HBase杂谈
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Apache Phoenix: Transforming HBase into a SQL Database
Apache Phoenix: Transforming HBase into a SQL DatabaseApache Phoenix: Transforming HBase into a SQL Database
Apache Phoenix: Transforming HBase into a SQL Database
 
Taming HBase with Apache Phoenix and SQL
Taming HBase with Apache Phoenix and SQLTaming HBase with Apache Phoenix and SQL
Taming HBase with Apache Phoenix and SQL
 
A Survey of HBase Application Archetypes
A Survey of HBase Application ArchetypesA Survey of HBase Application Archetypes
A Survey of HBase Application Archetypes
 
Apache Phoenix and Apache HBase: An Enterprise Grade Data Warehouse
Apache Phoenix and Apache HBase: An Enterprise Grade Data WarehouseApache Phoenix and Apache HBase: An Enterprise Grade Data Warehouse
Apache Phoenix and Apache HBase: An Enterprise Grade Data Warehouse
 
HBase for Architects
HBase for ArchitectsHBase for Architects
HBase for Architects
 
Hw09 Practical HBase Getting The Most From Your H Base Install
Hw09   Practical HBase  Getting The Most From Your H Base InstallHw09   Practical HBase  Getting The Most From Your H Base Install
Hw09 Practical HBase Getting The Most From Your H Base Install
 
Chicago Data Summit: Apache HBase: An Introduction
Chicago Data Summit: Apache HBase: An IntroductionChicago Data Summit: Apache HBase: An Introduction
Chicago Data Summit: Apache HBase: An Introduction
 
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
 
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 

Similaire à Stats web avec Hive chez Scoop.it

JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataGUSS
 
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataDavid Joubert
 
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comStockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comDamien Krotkine
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Bruno Bonnin
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingVictor Coustenoble
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Saïd Bouras
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr Hajji Hicham
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
L'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceL'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceMongoDB
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackALTIC Altic
 

Similaire à Stats web avec Hive chez Scoop.it (20)

NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
Soutenance ysance
Soutenance ysanceSoutenance ysance
Soutenance ysance
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
 
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.comStockage et analyse temps réel d'événements avec Riak chez Booking.com
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark Streaming
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
Riak introduction
Riak introductionRiak introduction
Riak introduction
 
L'avenir de LAMP
L'avenir de LAMPL'avenir de LAMP
L'avenir de LAMP
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
L'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceL'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFrance
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStack
 

Stats web avec Hive chez Scoop.it

  • 1. Stats Web avec Hive Cas pratique avec
  • 2.
  • 3.
  • 4. Il était une fois… Et, et, hadoop est arrivé…
  • 8. Des évènements • PageViewEvent • PostCurationEvent • SearchEvent • CommentEvent • ShareEvent • TopicDeletionEvent • UserDeletionEvent • …
  • 9. Première version • Compteur de vues : mysql • Compteur de visiteurs : mysql • Stockages des évènements : mysql • Stats par source : Google Analytics • Stats par pays : Google Analytics • Analyse des évènements : SQL
  • 10. Rançon du succès • Taux d’écriture dans mysql – Quick fix: • Espace de stockage • Google Analytics API lente et approximative
  • 11. Les besoins • Compteur de vues : calcul temps réel • Compteur de visiteurs : calcul 1 fois par jour • Stockages des évènements : fichiers « à plat » • Stats par source : calcul 1 fois par jour • Stats par pays : calcul 1 fois par jour • Analyse des évènements : à la demande et régulièrement
  • 12. Solution • Compteur de vues : Cassandra • Compteur de visiteurs : Hive • Stockages des évènements : ad hoc HDFS • Stats par source : Hive • Stats par pays : Hive • Analyse des évènements : Hive
  • 13. Cassandra vs Hbase • Hbase: – « open-source, distributed, versioned, column- oriented store modeled after Google's Bigtable » – « Bigtable-like capabilities on top of Hadoop and HDFS » • Cassandra: – « a BigTable data model running on an Amazon Dynamo-like infrastructure »
  • 14. Cassandra vs Hbase • Pro Hbase – Cluster Hadoop déployé – Hive supporte Hbase • Pro Cassandra – Cluster « temps réel » vs cluster « asynchrone » – Pas de SPOF (cf Hadoop Namenode) – Opérationnellement simple
  • 15. Hive vs Pig • Pig – « high-level language for expressing data analysis programs » – « compiler that produces sequences of Map- Reduce programs » • Hive – « data warehouse system for Hadoop » – « query the data using a SQL-like language »
  • 16. Hive vs Pig • Pro Pig: – Plus près de l’algorithme Map-Reduce • Pro Hive – SQL-like
  • 17. ad hoc HDFS vs Flume • Flume – « distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data »
  • 18. ad hoc HDFS vs Flume • Pro Flume – Fault tolerent – Streaming – Scalable – Agrégation • Anti Flume – Encore une techno à déployer – Encore une techno à apprendre – Volume de données encore « faible »
  • 19. Architecture de Hive Source: http://www.javabloger.com/article/apache-hive-jdbc-mapreduce.html
  • 20. • « workflow scheduler system to manage Apache Hadoop jobs » • Support de Hive Mais: • XML comme si il en pleuvait • Projet en beta en 2011 • Page d’analytics « privée » ?
  • 21. Scoop-mapred • Spring MVC webapp • Embedded Hive • Quartz Scheduler
  • 22. Architecture Cassandra Cassandra Cassandra view++ Scoop-mapred getViews getVisitors getTopicSources scoop TaskTracker Launch Jobs scoop web TaskTracker frontend TaskTracker Launch maps & reduces JobTracker tasks HDFS HDFS HDFS
  • 23. Calculs Map/Reduce Via HiveQL
  • 24. Hive : CREATE TABLE CREATE TABLE httpdlogs (ip STRING, domain STRING, user STRING, date STRING, method STRING, request STRING, protocol STRING, status INT, bodySize INT, referer STRING, useragent STRING); LOAD DATA INPATH '/var/log/site_access.log' INTO TABLE httpdlogs; SELECT status, COUNT(*) FROM httpdlogs WHERE referer = 'www.google.com' GROUP BY status;
  • 25. Hive : INSERT INTO TABLE CREATE TABLE google_httpdlogs (ip STRING, user STRING, date STRING); INSERT INTO TABLE google_httpdlogs SELECT ip, date FROM httpdlogs WHERE referer LIKE '%google%'; SELECT * FROM google_httpdlogs WHERE date > '2012-01-15';
  • 26. Hive : CREATE EXTERNAL TABLE CREATE EXTERNAL TABLE PageViewEvent (date STRING, uri STRING, querystring STRING, useragent STRING, referer STRING, ip STRING, …) PARTITIONED BY (day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' LINES TERMINATED BY 'n' LOCATION '/events/PageViewEvent'; ALTER TABLE PageViewEvent ADD PARTITION (day='20121205') LOCATION '/events/PageViewEvent/20121205'; SELECT COUNT(*) FROM PageViewEvent WHERE day = '20121205' AND date > '2012-12-05 12:00:00' AND date < '2012-12-05 13:00:00'
  • 27. Hive : CREATE ‘Cassandra’ TABLE CREATE EXTERNAL TABLE CassandraTopicVisitors (themeid BIGINT, day STRING, visitors INT) STORED BY 'org...cassandra.hadoop.hive.CassandraStorageHandler' WITH SERDEPROPERTIES ('cassandra.columns.mapping'=':key,:column,:value', 'cassandra.cf.name'='TopicVistors', 'cassandra.host'='cassandra-1', 'cassandra.port'='9160') TBLPROPERTIES ('cassandra.ks.name’='topic'); INSERT INTO TABLE CassandraTopicVisitors SELECT themeid, '2012-12-05', COUNT(DISTINCT userid) FROM PageViewEvent WHERE day = '20121205' GROUP BY themeid;
  • 28. CassandraStorageHandler • Patches: – https://issues.apache.org/jira/browse/CASSANDRA-913 – https://issues.apache.org/jira/browse/HIVE-1434 • En écriture : nickel • En lecture : à éviter / à tester
  • 29. Demo
  • 30. Bilan Après 1 an d’utilisation
  • 31. Les machines • 4 machines (Intel Xeon 1.87GHz, 8G RAM)
  • 32. HDFS et les petits fichiers $ sudo hadoop-fuse-dfs dfs://namenode:8020 ro hdfs $ du -sh hdfs/events 78G hdfs/events $ ls -l hdfs/events/GrabbedPostEvent/20121201/grabbing.10.tsv.gz -rw-r--r-- 1 99 99 2,6M 2012-12-01 07:04 hdfs/events/GrabbedPo[...] $ ls -l hdfs/events/PageViewEvent/20121201/web-3.6.tsv.gz -rw-r--r-- 1 99 99 960K 2012-12-01 04:47 hdfs/events/PageViewE[...] $ du -sh hdfs/apache_logs 360G hdfs/apache_logs
  • 33. Big Data ? • Hadoop surdimensionné • Architecture non triviale • Déploiement non trivial ~ • Scallable • Hive rocks : SQL => Map/reduce • Datamining / Recommendation