Hadoop et son écosystème - v2

  • View
    65

  • Download
    0

Embed Size (px)

Text of Hadoop et son écosystème - v2

  • Hadoop et son cosystme

    par KhanhTuong MAUDOUX

    @jetoile

    128/02/2017

  • Hadoop et son cosystme

    Qui je suis

    Khanh Tuong Maudoux

    Dveloppeur Java, JavaEE, BigData indpendant

    blog : blog.jetoile.fr

    @jetoile

    khanh.maudoux@jetoile.fr

    228/02/2017

  • Hadoop et son cosystme

    28/02/2017 3

  • Hadoop et son cosystme

    Au programme

    Hadoop : quest ce que cest? MapReduce

    HDFS

    Yarn

    Ecosystme Data Integration

    Batch Processing

    Analytic SQL

    Streaming Processing

    Machine Learning

    Search Engine

    Autre

    428/02/2017

  • Hadoop et son cosystme

    Quest ce que cest

    528/02/2017

  • Hadoop et son cosystme

    Quest ce que cest

    BigData => V4

    Volume

    Vlocit

    Varit

    Vracit

    BigData

    => Hadoop?

    28/02/2017 6

    Ne parlera pas des API de programmations

    comme Cascalog/Hive/Pig/Java/

  • Hadoop et son cosystme

    Quest ce que cest

    28/02/2017 7

    HDP 2.5

  • Hadoop et son cosystme

    Quest ce que cest

    MapReduce

    828/02/2017

  • Hadoop et son cosystme

    Quest ce que cestMapReduce

    928/02/2017

  • Hadoop et son cosystme

    Quest ce que cestMapReduce

    10

    Et Shuffle

    28/02/2017

  • Hadoop et son cosystme

    Quest ce que cestMapReduce

    11

    Et Shuffle

    28/02/2017

  • Hadoop et son cosystme

    Quest ce que cest

    HDFS

    1228/02/2017

  • Hadoop et son cosystme

    Quest ce que cestHDFS

    13

    Hadoop Distributed FileSystem

    FileSystem

    Les donnes sont crites dans des blocs grs par le

    FileSystem

    HDFS

    Les donnes sont crites dans des blocs grs par le HDFS

    => Un fichier dans HDFS est constitu de blocs

    28/02/2017

  • Hadoop et son cosystme

    Quest ce que cestHDFS

    14

    Permet :

    La rplication (les blocs sont rpliqus) et donc la

    rsilience

    La scalabilit (les blocs ne sont pas tous sur la mme

    machine)

    28/02/2017

  • Hadoop et son cosystme

    Quest ce que cestHDFS - 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 relle

    des donnes (bloc/datanode)

    DataNode

  • Hadoop et son cosystme

    Quest ce que cestHDFS - Lecture

    1628/02/2017

  • Hadoop et son cosystme

    Quest ce que cestHDFS - Ecriture

    1728/02/2017

  • Hadoop et son cosystme

    Quest ce que cest

    YARN

    1828/02/2017

  • Hadoop et son cosystme

    Quest ce que cestYARN

    19

    Avant :

    JobTracker

    TaskTracker

    28/02/2017

  • Hadoop et son cosystme

    Quest ce que cestYARN

    20

    Yet Another Resource Negociator

    Compos de :

    ResourceManager

    NodeManager

    ApplicationMaster

    28/02/2017

  • Hadoop et son cosystme

    Ecosystme

    2128/02/2017

    BatchProcessing

    AnalyticSQL

    SearchEngine

    MachineLearning

    StreamProcessing

    Workload Management (Yarn)

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

    Data Integration

    Filesystem (HDFS)

  • Hadoop et son cosystme

    Ecosystme

    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)

  • Hadoop et son cosystme

    EcosystmeData Integration

    23

    Sqoop

    Flume

    Logstash/Beats

    Kafka (messaging)

    Autres

    28/02/2017

  • Hadoop et son cosystme

    EcosystmeData Integration - Sqoop

    24

    Outils permettant de transfrer des donnes en

    masse entre Hadoop et un entrept de donnes

    structur tel quune base de donnes

    28/02/2017

  • Hadoop et son cosystme

    EcosystmeData Integration - Flume

    25

    Flume est un service distribu, fiable et hautement disponible servant la collecte, la lagrgation et le dplacement dune grosse quantit de donnes de logs

    Compos de Source

    Sink

    Channel

    28/02/2017

  • Hadoop et son cosystme

    EcosystmeData Integration - Logstash

    2628/02/2017

    Logstash est un simple agent orient message quil

    est possible de configurer pour combiner diffrentes

    fonctions

    Compos de

    Input

    Filter

    Output

  • Hadoop et son cosystme

    EcosystmeData Integration - Kafka

    27

    Systme orient message de type publish/subscribeimplment comme systme de traces transactionnel distribu, adapt pour la consommation de messages en-ligne et hors ligne

    Service de commit de traces distribu, partitionn et rpliqu

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

    28/02/2017

  • Hadoop et son cosystme

    EcosystmeData Integration - Autres

    28

    Driver (java, )

    WebHDFS

    Gateway NFS

    NiFi

    28/02/2017

  • Hadoop et son cosystme

    Ecosystme

    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)

  • Hadoop et son cosystme

    EcosystmeBatch Processing

    30

    MapReduce

    Hive

    Pig

    Cascading

    Spark

    28/02/2017

  • Hadoop et son cosystme

    EcosystmeBatch Processing - MapReduce

    31

    Framework MapReduce ;)

    28/02/2017

    public class WordCount {

    public static class TokenizerMapper

    extends Mapper{

    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 {

    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable 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);

    }

    }

  • Hadoop et son cosystme

    EcosystmeBatch Processing - Hive

    32

    Permet lexcution de requtes SQL sur un cluster

    Hadoop en vue danalyser et dagrger les donnes.

    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;

  • Hadoop et son cosystme

    EcosystmeBatch Processing - Pig

    33

    Permet le requtage des donnes Hadoop partir

    dun langage de script

    Bas sur un langage de haut niveau permettant de

    crer 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;

  • Hadoop et son cosystme

    EcosystmeBatch Processing - Cascading

    34

    API de traitement de donnes et planificateur de

    requte pour la dfinition, le partage et le traitement

    de donnes

    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();

  • Hadoop et son cosystme

    EcosystmeBatch Processing - Spark

    35

    Moteur danalyse multifonction adapt au traitement

    rapide de gros volumes de donnes

    Concurrent de MapReduce

    Bas sur les RDD (Resilient Distribut