Big Data 101

Introduction à Big Smart Data @JCDecaux

@nsteinmetz / Janvier 2016

Objectif(s)

Fournir une vision générale de l'architecture Smart Data et de ses composants

Big Data ?

3V

  • Volumétrie
  • Vélocité
  • Variété

Objectifs

  • Créer un « Data lake » / « Data hub »
  • Croiser les données
  • Accélérer le traitement des données

Cas d'usages

3 à 4 activités

  • Ingestion
  • Stockage
  • Traitement
  • Restitution

Hadoop ?

Historique

  • 2002 : Projet Nutch (Lucene at scale)
  • 2003 : Google publie GFS
  • 2004 : Publication de Map Reduce ; implémenté en 2005 dans Nutch
  • 2006 : Hadoop devient un projet indépendant & D. Cutting rejoint Yahoo!
  • 2008 : Hadoop devient un top projet apache

Principes

  • Stockage d'une hétéréogénéité de données (Schema on read)
  • Limiter les déplacements de données => ce sont les traitements qui se déplacent, pas les données
  • Adapter la puissance au besoin par sclabilité linéaire
  • Garantir une fiabilité du fonctionnement via la réplication des données
  • Plateforme Ouverte (API, Composants, etc)

Versions

  • 2011 - V0.2
  • 2012 - V1
  • 2013 - V2.2 (basée sur version 0.23 de 2012)
  • 2014 - V2.3/2.4
  • 2015 - V2.5, 2.6, 2.7

Distributions

Généralistes

  • Cloudera
  • MapR
  • Hortonworks

Cloud (AWS, Google, Microsoft, etc)

Editeurs (IBM, Oracle, Teradata, etc)

Déploiement

  • Cluster : 10.000+ noeuds
  • France : Criteo / 1000+ noeuds

Infrastructrue type

  • Master node {1,2}
  • Data node {3|5:n}
  • Edge node {1,n}
  • Worker node {1,n}

configuration moyenne (selon OCTO)

  • Master node : 4 CPU / 96 Go RAM / n To / 2 NIC
  • Slave node : 6 CPU / 96 Go RAM / n To / 2 NIC
  • Commodity hardware ?! (sic)

Hortonworks

  • 100% OSS (+ Support)
  • Platform agnostic (cloud & on premise)
  • Composants plutôt à jour

Versions

  • 2011 : Création de l'entreprise (ex Yahoo!)
  • 2012 : HDP V1
  • 2013 : HDP V2
  • 2014 : HDP V2.1
  • 2015 : HDP V2.2 & V2.3

Aperçu

Versions

A la découverte des composants

Data Management

  • HDFS
  • YARN

HDFS

Hadoop Distributed File System

  • Système de fichiers distribué (Java)
  • Système de fichiers logiques (fichiers / répertoires)
  • 1 Name node ; n Data Nodes
  • Name node (metadonnées, permissions, distribution/replication)

YARN

Yet Another Resource Negotiator

  • Data Operating System / Ressource Cluster Management
  • Ouvre HDFS à d'autres modes de traitement que Map/Reduce

Data Access

Batch - Map/Reduce

Mode de traitement historique

Traitements sont distribués au plus près de la donnée

  • Opérations de Map sur les nodes
  • Aggrégation dans une seule liste
  • Distribution de la liste vers les reducers
  • Stockage du résultat sur HDFS

Limites de Map/Reduce

  • Performances
  • Inadapatation de la logique clé/valeurs à certains cas d'usages
  • Limite dans le chainage des opérations

Scripting - Pig

  • Langage de scripting haut-niveau
  • Code convertit en Jobs Map/Reduce en Java
  • Extensible (UDF, Java code, etc)

SQL - Hive

  • SQL on top of HDFS
  • Couche d'abstraction / d'autres bases (hbase, etc)

NoSQL - HBase

  • Apporte une couche de "transactionnel" dans le monde hadoop
  • NoSQL DB on top of HDFS
  • DB orientée colonne, utilisée pour des données tabulaires & temps réel (faible latence)
  • DB distribuée (master & region servers + zookeeper pour les clients)
  • HFile stockés sur HDFS
  • API Java, Phoenix (API SQL)

In Memory - Spark

  • Moteur de traitement des données en mémoire
  • Usage Hadoop/HDFS/HBase/Hive, S3, Cassandra
  • 5 composants : Core, SQL/DataFrame, MLlib, Streaming (micro-batch), Graphx
  • API : Scala, Java, Python, R
  • Performances : Entre 10 et jsq 100x Map/Reduce jobs

Data Workflow

Messaging - Kafka

Apache Kafka is a fast, scalable, durable, and fault-tolerant publish-subscribe messaging system

Vers la streaming data platform 1/2

Vers la streaming data platform 2/2

Architecture Spark

Kafka - Commit Log

Kafka - Consumer group

Pour un consumer group, il ne peut pas y avoir plus de consumer que de partitions

Kafka+ - Confluent

@JCDecaux : Projet Smartlink (M. Mathieu)

SQL - Sqoop

  • *SQL (MySQL, Postgres, Oracle, ...) to HDFS / Hive / HBase
  • Full or partial/incremental import

MQTT - Mosquito (TBC)


MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.

Intégration via Spark Streaming/MQTT

Restitution

Elasticsearch / Kibana

  • Performant pour croiser des données avec bcp de profondeur
  • Pratique pour la découverte de données
  • Mais flexiiblité / qualité de la restitution à apprécier

Tableau ?

  • Excel on steroids
  • Dashboard

Développement spécifique

  • API Rest Elasticsearch + App HTML/JS ?

Autour

  • Sécurité / Audit / Authentification : Ranger, Knox, Atlas
  • Monitoring / Provisionning / Cluster Management : Cloudbreak / Ambari

Projets 2016

  • Industrialisation Plateforme (scalabilité, exploitabilité, etc)
  • Digital Compliance (Monitoring, Proof of play, proof of content)
  • Smartbicks / Live Availability
  • Intégration / Exploration Réseaux Sociaux
  • DCide ?
  • ...

Ex Architecture Monitoring

En savoir plus...

Colossal data ?

(-: Merci :-)