Projet Ours
Sommaire Présentation du périmètre fonctionnel Architecture générale HBase Client Workers Exploitation
Périmètre fonctionnel 1- Centraliser toutes les offres (LG, CIAO, DOYOO) dans un unique repository. 2- Contextualiser des offres (Compléter les attributs des offres, Historique 10j). 3- Réduire le temps des mises à jour des offres en live (DELTA). 4- Consulter et mettre à jour les offres (ex : catégorisation).
HBase HBase: NoSQL (Not Only SQL) Inspiré de BigTable de Google Orienté colonnes (Clé-valeur, document, graph), comme Cassandra, Hypertable IdTimestampTitreDescriptionUrlBrand… PortableDell Portable Gamernouvelle url TéléphoneSamsung amazon 4 Column family « data » Region Server 2 Region Server 1
HBase Avantages: –Pas de schéma fixe –Partition automatique –Scalable horizontalement –Tolérant à la panne –Gestion native d’un TTL Inconvénients –Requêtage complexe –Model de données « plat » i.e. non hiérarchique (RMDS)
HBase Schéma: –Première version simple –Uniquement les champs leguide0.txt –« Modification » du schéma au fur et à mesure de l’intégration des workers
Client HBase Master HBase Region Servers File System Client ZooKeeper Quorum
Client HBase Master HBase Region Servers HBase Master Backup ZooKeeper Quorum HDFS NameNode HDFS DataNode Client
HBase Master HBase Region Servers ZooKeeper Local File System Client
Référentiel des offres Clé: élément le plus important -> identifiant unique – - - Types de filtres: –Row –Column Family –Column Qualifier –Timestamp –Value
Référentiel des offres - - Toutes les offres d’un marchand dans un pays: –Filtre de type Row -> Scan(RowFilter("fr " )) Toutes les offres d’un marchand: –Filtre de type Row -> Scan(SubStringFilter(" ")) Toutes les offres d’un marchand qui ont été modifiées: –Filtre de type Row + Value -> Scan(RowFilter("fr " ) and SingleColomnValueFilter("update", {"UPDATE", "ADD", "REMOVE"} )) L’offre il y a 8 jours: –Filtre de type Row + Timestamp -> Scan(RowFilter("fr " ) and TimestampFilter(« 8 days ago »)
Workers HBase MapReduce != HDFS MapReduce –Utilisent une table comme source –Permettent de filtrer les données (Scan) Catégorisation/Brand/Clicks… –Compléter les données de la base des offres via BDD ou un export Génération de stats pour le BI, indexation pour l’équipe search (génération des micros index en map-reduce)…
Workers Gestion des workers: –Ex: Intégration (Launch) -> requête de workers pour lancer le delta –Ex: Scheduler -> CRON pour lancer une catégorisation Application Ex:intégration Scheduler Ex: catégorisation Workers Manager HBase
Déploiement de la distribution Cloudera –Distribution « brute » d’Apache présentes des conflits de versions –Stabilité: patchs réguliers, versions contrôlées –Packages prêt à l’emploi: rpm… –Quelques fonctionnalités manquantes –Outils Cloudera Manager: supervision, déploiement simplifié, métriques… Exploitation
Hardware –Master: (NameNode, Secondary NameNode, JobTracker et Hbase Master) -> 17GB –Slave (DataNode, TaskTrackers, Hbase RegionServers) -> 24GB Exploitation
Questions?