hadoop et son écosystème - v2

74
Hadoop et son écosystème par KhanhTuong MAUDOUX @jetoile 1 28/02/2017

Upload: khanh-maudoux

Post on 20-Mar-2017

77 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Hadoop et son écosystème - v2

Hadoop et son écosystème

par KhanhTuong MAUDOUX

@jetoile

128/02/2017

Page 2: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qui je suis…

• Khanh Tuong Maudoux

• Développeur Java, JavaEE, BigData indépendant

• blog : blog.jetoile.fr

• @jetoile

[email protected]

228/02/2017

Page 3: Hadoop et son écosystème - v2

Hadoop et son écosystème

28/02/2017 3

Page 4: Hadoop et son écosystème - v2

Hadoop et son écosystème

Au programme…

• Hadoop : qu’est ce que c’est? – MapReduce

– HDFS

– Yarn

• Ecosystème– Data Integration

– Batch Processing

– Analytic SQL

– Streaming Processing

– Machine Learning

– Search Engine

– Autre

428/02/2017

Page 5: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

528/02/2017

Page 6: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

• BigData => V4

– Volume

– Vélocité

– Variété

– Véracité

• BigData

=> Hadoop?

28/02/2017 6

Ne parlera pas des API de programmations

comme Cascalog/Hive/Pig/Java/…

Page 7: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

28/02/2017 7

HDP 2.5

Page 8: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

MapReduce

828/02/2017

Page 9: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…MapReduce

928/02/2017

Page 10: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…MapReduce

10

• Et… Shuffle

28/02/2017

Page 11: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…MapReduce

11

• Et… Shuffle

28/02/2017

Page 12: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

HDFS

1228/02/2017

Page 13: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…HDFS

13

• Hadoop Distributed FileSystem

• FileSystem

– Les données sont écrites dans des blocs gérés par le

FileSystem

• HDFS

– Les données sont écrites dans des blocs gérés par le HDFS

=> Un fichier dans HDFS est constitué de blocs

28/02/2017

Page 14: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…HDFS

14

• Permet :

– La réplication (les blocs sont répliqués) et donc la

résilience

– La scalabilité (les blocs ne sont pas tous sur la même

machine)

– …

28/02/2017

Page 15: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…HDFS - Architecture

15

• NameNode et DataNode

28/02/2017

NameNode Namespace

Metadata

Block Map

Journaling

Disk

DataNode

Storage

Disk

DataNode

Storage

Disk

Storage

Disk

Bloc report

Contient la localisation réelle

des données (bloc/datanode)

DataNode

Page 16: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…HDFS - Lecture

1628/02/2017

Page 17: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…HDFS - Ecriture

1728/02/2017

Page 18: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…

YARN

1828/02/2017

Page 19: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…YARN

19

• Avant :

– JobTracker

– TaskTracker

28/02/2017

Page 20: Hadoop et son écosystème - v2

Hadoop et son écosystème

Qu’est ce que c’est…YARN

20

• Yet Another Resource Negociator

• Composé de :

– ResourceManager

– NodeManager

– ApplicationMaster

28/02/2017

Page 21: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

2128/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 22: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Data Integration

2228/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 23: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration

23

• Sqoop

• Flume

• Logstash/Beats

• Kafka (messaging)

• Autres…

28/02/2017

Page 24: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration - Sqoop

24

• Outils permettant de transférer des données en

masse entre Hadoop et un entrepôt de données

structuré tel qu’une base de données

28/02/2017

Page 25: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration - Flume

25

• Flume est un service distribué, fiable et hautement disponible servant à la collecte, la l’agrégation et le déplacement d’une grosse quantité de données de logs

• Composé de

– Source

– Sink

– Channel

28/02/2017

Page 26: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration - Logstash

2628/02/2017

• Logstash est un simple agent orienté message qu’il

est possible de configurer pour combiner différentes

fonctions

• Composé de

– Input

– Filter

– Output

Page 27: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration - Kafka

27

• Système orienté message de type publish/subscribeimplémenté comme système de traces transactionnel distribué, adapté pour la consommation de messages en-ligne et hors ligne

• Service de commit de traces distribué, partitionné et répliqué

• Les producteurs publient des messages dans des topics, les consommateurs s'abonnent à ces sujets et consomment les messages

28/02/2017

Page 28: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeData Integration - Autres

28

• Driver (java, …)

• WebHDFS

• Gateway NFS

• NiFi

• …

28/02/2017

Page 29: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Batch Processing

2928/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 30: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing

30

• MapReduce

• Hive

• Pig

• Cascading

• Spark

28/02/2017

Page 31: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing - MapReduce

31

• Framework MapReduce ;)

28/02/2017

public class WordCount {

public static class TokenizerMapper

extends Mapper<Object, Text, Text, IntWritable>{

private final static IntWritable one = new IntWritable(1);

private Text word = new Text();

public void map(Object key, Text value, Context context

) throws IOException, InterruptedException {

StringTokenizer itr = new StringTokenizer(value.toString());

while (itr.hasMoreTokens()) {

word.set(itr.nextToken());

context.write(word, one);

}

}

}

public static class IntSumReducer

extends Reducer<Text,IntWritable,Text,IntWritable> {

private IntWritable result = new IntWritable();

public void reduce(Text key, Iterable<IntWritable> values,

Context context

) throws IOException, InterruptedException {

int sum = 0;

for (IntWritable val : values) {

sum += val.get();

}

result.set(sum);

context.write(key, result);

}

}

public static void main(String[] args) throws Exception {

Configuration conf = new Configuration();

Job job = Job.getInstance(conf, "word count");

job.setJarByClass(WordCount.class);

job.setMapperClass(TokenizerMapper.class);

job.setCombinerClass(IntSumReducer.class);

job.setReducerClass(IntSumReducer.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

FileInputFormat.addInputPath(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

System.exit(job.waitForCompletion(true) ? 0 : 1);

}

}

Page 32: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing - Hive

32

• Permet l’exécution de requêtes SQL sur un cluster

Hadoop en vue d’analyser et d’agréger les données.

• Langage de visualisation uniquement

• Offre les connecteurs ODBC/JDBC

28/02/2017

CREATE EXTERNAL TABLE IF NOT EXISTS test(id INT, value STRING)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ';'

STORED AS TEXTFILE

LOCATION 'hdfs://localhost:20112/test/hive/‘;

SELECT * FROM test;

Page 33: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing - Pig

33

• Permet le requêtage des données Hadoop à partir

d’un langage de script

• Basé sur un langage de haut niveau permettant de

créer des programmes de type MapReduce

28/02/2017

a = LOAD 'nyse_stocks' using

org.apache.hcatalog.pig.HCatLoader();

b = filter a by stock_symbol == 'IBM';

dump b;

Page 34: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing - Cascading

34

• API de traitement de données et planificateur de

requête pour la définition, le partage et le traitement

de données

28/02/2017

Fields token = new Fields( "token" );

Fields text = new Fields( "text" );

RegexSplitGenerator splitter = new RegexSplitGenerator( token, "[ \\[\\]\\(\\),.]" );

Pipe docPipe = new Each( "token", text, splitter, Fields.RESULTS );

Pipe wcPipe = new Pipe( "wc", docPipe );

wcPipe = new GroupBy( wcPipe, token );

wcPipe = new Every( wcPipe, Fields.ALL, new Count(), Fields.ALL );

FlowDef flowDef = FlowDef.flowDef().setName( "wc" )

.addSource( docPipe, docTap )

.addTailSink( wcPipe, wcTap );

Flow wcFlow = flowConnector.connect( flowDef );

wcFlow.writeDOT( "dot/wc.dot" );

wcFlow.complete();

Page 35: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeBatch Processing - Spark

35

– Moteur d’analyse multifonction adapté au traitement

rapide de gros volumes de données

– Concurrent de MapReduce

– Basé sur les RDD (Resilient Distributed DataSet)

– Peut également utiliser SparkSQL/DataSet

– Peut s’appuyer sur YARN

28/02/2017

Page 36: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Analytic SQL

3628/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 37: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAnalytic SQL

37

• Drill

• Impala

• Spark SQL

• Autres…

28/02/2017

Page 38: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAnalytic SQL - Drill

38

• Système distribué permettant d’effectuer des requêtes sur de larges données permettant l’analyse interactive des données en SQL

• Permet de requêter des sources de données hétérogènes : – MongoDB

– JSON

– HDFS

– Hive

– Classpath

– HBase

• Offre le connecteur ODBC

28/02/2017

Page 39: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAnalytic SQL - Impala

39

• Système distribué permettant d’effectuer des requêtes sur

de larges données permettant l’analyse interactive des

données en SQL

• Permet de requêter des sources de données hétérogènes :

– HDFS

– HBase

• Compatible avec Hive

28/02/2017

Page 40: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAnalytic SQL – Spark SQL

40

• Module de Spark offrant une API de plus haut niveau

avec une syntaxe SQL

• Equivalent à Hive mais s’exécutant sur Spark

• Offre le connecteur JDBC

28/02/2017

Page 41: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAnalytic SQL – Autres

41

• Hawq

• Presto

• Hive LLAP

• …

28/02/2017

Page 42: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Stream Processing

4228/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 43: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing

43

• Storm

• Spark Streaming

• Spring Cloud DataFlow

• Samza

• Autres…

28/02/2017

Page 44: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing - Storm

44

• Système de calcul distribué temps réel

• S’appuie sur les notions de :

• Nimbus Node (~JobTracker)

• Zookeeper

• Supervisor Node (~NodeManager)

• Notions de Spouts/Bolts

• Peut s’appuyer sur YARN

28/02/2017

Page 45: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing – Spark Streaming

45

• Module de Spark permettant de traiter des flux de

données qui arrivent en continu, et donc de traiter

ces données au fur et à mesure de leur arrivée

• Fonctionnement sur le principe de microbatch

28/02/2017

Page 46: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing – Spring Cloud DataFlow

46

• Anciennement Spring XD

• Basé sur Spring Integration, Spring Batch et SpringData

• Offre un DSL qui permet de construire une route qui est exécuté par des job managé par Spring Batch en exploitant le provisionning par YARN / MESOS / Local

28/02/2017

Page 47: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing – Samza

4728/02/2017

• Framework permettant de traiter de manière

distribué des flux

• Utilise Kafka, YARN

• Offre la possibilité de faire du windowing

Page 48: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeStream Processing – Autres

4828/02/2017

• Flink

• NiFi

• Kafka Stream

• Apex

• Heron

• …

Page 49: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Machine Learning

4928/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 50: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeMachine Learning

50

• Mahout

• Spark ML

28/02/2017

Page 51: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeMachine Learning - Mahout

51

• Vise à créer des implémentations d’algorithmes

d’apprentissage automatiques et de dataminings.

• Même si les principaux algorithmes d’apprentissage

se basent sur MapReduce, il n’y a pas d’obligation à

utiliser Hadoop

28/02/2017

Page 52: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeMachine Learning – Spark ML

52

• Librairie Spark de machine learning fournissant les

algorithmes de classique (classification, regression,

clustering, collaborative filtering, dimensionality

reduction, …)

28/02/2017

Page 53: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Machine Learning

5328/02/2017

BatchProcessing

AnalyticSQL

SearchEngine

MachineLearning

StreamProcessing

Workload Management (Yarn)

Storage for any type of dataUnified, Elastic, Resilient, Secure

Data Integration

Filesystem (HDFS)

Page 54: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeSearch Engine

54

• SolR

• Elastic

28/02/2017

Page 55: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeSearch Engine – SolR

5528/02/2017

• SolR offre une indexation distribué, répliqué basé sur

Apache Lucene

• Permet la recherche full text, le highlighting, le

facetting, la recherche géospatiale

• Permet l’indexation de documents riches

Page 56: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeSearch Engine – Elastic

5628/02/2017

• Elastic offre une indexation distribué, répliqué basé

sur Apache Lucene

• Permet la recherche full text, le highlighting, le

facetting, la recherche géospatiale

• Permet l’indexation de documents riches

Page 57: Hadoop et son écosystème - v2

Hadoop et son écosystème

Ecosystème

Autre

5728/02/2017

Page 58: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre

58

• HBase

• Phoenix

• Cassandra

• Neo4J / MongoDB / …

• Kudu

• Confluent.io

• Oozie

• Zookeeper

• Tez

• Mesos

• MaprFS / MaprDB / MaprStream

• Beam

• Ambari / Knox / Ranger

28/02/2017

Page 59: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - HBase

59

• Système de gestion de base de données non-

relationnelles distribué de type orientée colonnes

• Basés sur une architecture maitre/esclave (HBase

Master et Region Server)

28/02/2017

Page 60: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Phoenix

6028/02/2017

• Permet de requêter HBase via une interface SQL en

offrant un driver jdbc.

• Phoenix accepte une requête SQL et la traduit en

une série de scan Hbase. Il orchestre ensuite son

exécution pour produire un résultat au format

ResultSet JDBC.

• Les métadonnées de la table sont stockées et

versionnées dans une table HBase.

Page 61: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Cassandra

6128/02/2017

• Système de gestion de base de données non-

relationnelles distribué de type orientée colonnes

• Conçu pour être hautement disponible, scalable

linéairement, et sans Single Point Of Failure

Page 62: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre – Neo4J / MongoDB / …

6228/02/2017

• Neo4j

– NoSQL orienté graphe

• MongoDB

– NoSQL orienté document

• CouchBase

– NoSQL orienté clé/valeur / document

• Redis / Voldemort

– NoSQL orienté clé/valeur

Page 63: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Kudu

6328/02/2017

• Système de gestion de base de données non-

relationnelles distribué de type orientée colonnes

• Conçu pour offrir de bonnes performances aussi

bien pour les scanne que pour les accès aléatoire

• Se positionne entre HDFS et HBase

Page 64: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre – Confluent.io

6428/02/2017

• Intégration de :

– Kafka

– Avro

– SchemaRegistry

– Gateway Rest pour lire/écrire dans Kafka

Page 65: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Oozie

65

• Solution de workflow (au sens ordonnanceur d’exploitation) utilisée pour gérer et coordonner les tâches de traitement de données à destination de Hadoop.

• Integré avec l’écosystème Hadoop :

– MapReduce (Java et Streaming)

– Pig

– Hive

– Sqoop

– Autres (Java ou scripts de type Shell)

28/02/2017

Page 66: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Zookeeper

66

• Service de coordination des services (et en

l’occurrence des services d’un cluster Hadoop)

• Fournit aux composants Hadoop les fonctionnalités

de distribution

• Indispensable à :

– HBase

– Storm

– Kafka

28/02/2017

Page 67: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Tez

67

• Remplace MapReduce en utilisant YARN afin de

fournir des requêtes dites “temps réel”

• Utilisable par (work in progress) :

– Hive

– Pig

– Cascading

28/02/2017

Page 68: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre - Mesos

6828/02/2017

• Alternative à YARN

• Cluster Manager permettant d’abstraire le CPU, la

mémoire, le stockage ainsi que les resources de

calcul

Page 69: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre – MaprFS / MaprDB / MaprStream

6928/02/2017

• MapR propose MapR-FS en alternative à HDFS

• MapR propose MapR-DB en alternative à HBase

• MapR propose MapR-Stream en alternative à Kafka

• Offre les mêmes API (HDFS/HBase/Kafka)

Page 70: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre – Beam

70

• API de Google DataFlow permettant de s’exécuter

sur différent moteur d’exécution :

– DataFlow

– Spark

– Flink

– Apex

– …

28/02/2017

Page 71: Hadoop et son écosystème - v2

Hadoop et son écosystème

EcosystèmeAutre – Ambari / Knox / Ranger

71

• Ambari

– Destiné à la supervision et à l’administration de clusters Hadoop

– Gestion de configuration permettant de déployer des services d’Hadoop ou de son écosystème sur des clusters de machines

• Knox

– Gateway HTTP

• Ranger

– Gestion de la sécurité

28/02/2017

Page 72: Hadoop et son écosystème - v2

Hadoop et son écosystème

Le mot de la fin… (?)

7228/02/2017

Page 73: Hadoop et son écosystème - v2

Hadoop et son écosystème

Questions ?

7328/02/2017

Page 74: Hadoop et son écosystème - v2

Hadoop et son écosystème

Merci !

7428/02/2017