27
#DevoxxFR Apache Zeppelin le notebook d’avenir pour l’éco-système Big Data 1

Apache Zeppelin @DevoxxFR 2016

Embed Size (px)

Citation preview

Page 1: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Apache Zeppelin le notebook d’avenir pour

l’éco-système Big Data

1

Page 2: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Un peu de moi Duy Hai DOAN

Evangéliste technique & consultant Apache Cassandra

•  talks, meetups, confs

•  projet open-source (Achilles, Apache Zeppelin)

•  Des questions sur Apache Cassandra/Apache Zeppelin ? ☞ [email protected] ☞ @doanduyhai

2

Page 3: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Datastax •  Fondé en Avril 2010

•  Plus gros pourvoyeur de contributeur à Apache Cassandra™

•  Bureaux européens à Londres, Paris et Berlin

•  Datastax Enterprise = OSS Cassandra + fonctionnalités+++

3

Page 4: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Qu’est ce Apache Zeppelin ?

Page 5: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Brève description

5

Page 6: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Démo: Cassandra Full Text Search

Cassandra – SparkSQL analytics

Page 7: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR 7

Architecture

Zeppelin Server

Zeppelin Engine

R E S T

Web

Sock

et

Spark Interpreter Group

Spark SparkSQL

Zeppelin Interpreter

Factory

Tajo Interpreter

Flink Interpreter

Cassandra Interpreter

JVM

JVM

JVM

JVM

JVM

Page 8: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Éléments graphiques

Page 9: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Démo

Page 10: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Méthodes d’affichage

Page 11: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Démo

Page 12: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Système d’interpréteurs

Page 13: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Cycle de vie d’un interpréteur   Réception des commandes/données en entrée

•  texte brut

•  formulaire de données

  Traiter les commandes/données par un système externe

  Formatter la réponse avec une méthode d’affichage Zeppelin

  Renvoyer la réponse au Zeppelin-engine

13

Page 14: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Interpréteurs d’origine •  Spark (Spark core, SparkSQL/DataFrame, PySpark)

•  Spark core = interpréteur par défaut (ou %spark)

•  SparkSQL = %sql

•  Shell (%sh)

•  Markdown (%md)

•  AngularJS (%angular)

14

Page 15: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Interpréteurs communautaires Alluxio Cassandra ElasticSearch Flink Geode HBase Hive Ignite JDBC …

15

Page 16: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Interpréteur: configuration & sélection

Page 17: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Créer son propre interpréteur

Page 18: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Étapes Créer une classe qui étend la classe Interpreter de base L’enregister dans un bloc static 😳😳😳 En option, définir quelques paramètres par défaut

18

static { !Interpreter.register("Nom_interpréteur", !

ClasseInterpreteur.class.getName()); !} !

static { !Interpreter.register("Nom_interpréteur", !

ClasseInterpreteur.class.getName(), !new InterpreterPropertyBuilder() !

.add("prop1", "val1")...build()); !} !

Page 19: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Pour déclarer son interpréteur en dûr

•  Éditer l’enum ZeppelinConfiguration.ConfVars

•  Ajouter le nom de classe de son interpréteur dans la propriété ZEPPELIN_INTERPRETERS

19

Page 20: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Ou déclarer son interpréteur en conf

•  Copier conf/zeppelin-site.xml depuis conf/zeppelin-site.xml.template

•  Ajouer son interpréteur à la propriété zeppelin.interpreters

20

<property> !<name>zeppelin.interpreters</name> ! <value>org.apache.zeppelin.spark.SparkInterpreter, !

org.apache.zeppelin.spark.PySparkInterpreter, ! org.apache.zeppelin.spark.SparkSqlInterpreter, ! org.apache.zeppelin.spark.DepInterpreter, ! org.apache.zeppelin.markdown.Markdown, ! org.apache.zeppelin.shell.ShellInterpreter, ! org.apache.zeppelin.hive.HiveInterpreter, !

fr.moi.MonInterpreteurToutPouri!</value> !

</property> !

Page 21: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Interpréteur AsciiDoc

21

Zeppelin Server

AsciiDoc Interpreter

JVM Zeppelin Engine

RawTextBlock

RawTextBlock

ConvertedTo

HTML

HTMLOutput

! !

!!

JVM

Page 22: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Démo: Interpréteur AsciiDoc

Page 23: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Interpréteur Cassandra

23

Cassandra Interpreter

JVM

DisplayResults as

HTML

! !

!

Zeppelin Server

JVM

RawTextBlock

RawTextBlock

Cassandra Cassandra

Java Driver

!

Async CQLstatements

!RenderHTML

!

Page 24: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Commandes spéciales

24

Native CQL statements

SELECT * FROM …;INSERT INTO …;

Schema commands

DESCRIBE TABLE …;DESCRIBE KEYSPACE …;

Prepared statements Commands@prepare …;

@bind …;@remove_prepared …;

Help commandHELP;

Options Commands@consistency …;@retryPolicy …;@fetchSize …;

Page 25: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Démo: Interpréteur Cassandra

Page 26: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Q & R

! "

Page 27: Apache Zeppelin @DevoxxFR 2016

#DevoxxFR

Merci

27

@doanduyhai

[email protected]

http://zeppelin.incubator.apache.org/