Duy Hai DOAN @doanduyhai Who Am I ? Duy Hai DOAN Cassandra - - PowerPoint PPT Presentation

duy hai doan
SMART_READER_LITE
LIVE PREVIEW

Duy Hai DOAN @doanduyhai Who Am I ? Duy Hai DOAN Cassandra - - PowerPoint PPT Presentation

Apache Zeppelin, the missing GUI for your BigData eco-system Duy Hai DOAN @doanduyhai Who Am I ? Duy Hai DOAN Cassandra technical advocate talks, meetups, confs open-source devs ( Achilles , ) OSS Cassandra point of contact


slide-1
SLIDE 1

@doanduyhai

Apache Zeppelin, the missing GUI for your BigData eco-system

Duy Hai DOAN

slide-2
SLIDE 2

@doanduyhai

Who Am I ?

Duy Hai DOAN Cassandra technical advocate

  • talks, meetups, confs
  • pen-source devs (Achilles, …)
  • OSS Cassandra point of contact

☞ duy_hai.doan@datastax.com ☞ @doanduyhai

2

slide-3
SLIDE 3

@doanduyhai

Datastax

  • Founded in April 2010
  • We contribute a lot to Apache Cassandra™
  • 400+ customers (25 of the Fortune 100), 400+ employees
  • Headquarter in San Francisco Bay area
  • EU headquarter in London, offices in France and Germany
  • Datastax Enterprise = OSS Cassandra + extra features

3

slide-4
SLIDE 4

What is Apache Zeppelin ?

Presentation Architecture

slide-5
SLIDE 5

@doanduyhai

Zeppelin Presentation

5

slide-6
SLIDE 6

@doanduyhai

Demo

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-7
SLIDE 7

@doanduyhai

Zeppelin Architecture

Zeppelin Server

Zeppelin Engine

7

R E S T

WebSocket Spark Interpreter Group Spark SparkSQL Zeppelin Interpreter Factory Tajo Interpreter Flink Interpreter Cassandra Interpreter

JVM

JVM JVM JVM JVM

slide-8
SLIDE 8

@doanduyhai

What does Zeppelin provide ?

Front-end & display system for free Generic back-end with REST APIs & WebSocket Pluggable interpreters system Task scheduler (à la CRON)

8

slide-9
SLIDE 9

Zeppelin UI Layout

Notebook Paragraph UI elements

slide-10
SLIDE 10

@doanduyhai

Demo

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-11
SLIDE 11

Zeppelin Display System

Raw, Table, HTML Available graphs View modes Dynamic form Iframe export

slide-12
SLIDE 12

@doanduyhai

Demo

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-13
SLIDE 13

Interpreter system

Core interpreters Third-parties interpreters Interpreters conf & usage

slide-14
SLIDE 14

@doanduyhai

Interpreter processing lifecycle

Receive input commands/data

  • as raw text
  • from form data

Process the input commands/data by the external back-end

Format the response using Zeppelin display system

Send response back to the Zeppelin engine

14

slide-15
SLIDE 15

@doanduyhai

Core interpreters

  • Spark (Spark core, SparkSQL/DataFrame, PySpark)
  • Spark core = default (or %spark)
  • SparkSQL = %sql
  • Shell (%sh)
  • Markdown (%md)
  • AngularJS (%angular)

15

slide-16
SLIDE 16

@doanduyhai

Third-parties interpreters

  • Hive
  • Phoenix
  • Tajo
  • Flink
  • Ignite
  • Lens
  • Cassandra
  • Geode
  • PostgreSQL
  • Kylin

16

slide-17
SLIDE 17

@doanduyhai

Interpreter conf & usage

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-18
SLIDE 18

Writing An Interpreter

  • How To

Simple interpreter example (AsciiDoc) Complex interpreter example (Cassandra)

slide-19
SLIDE 19

@doanduyhai

Steps to write your own interpreter

  • Create a class that extends Interpreter base class
  • Register it in a static block
  • Optionnally define default config params

19

static {

Interpreter.register("MyInterpreterName", MyClassName.class.getName()); }

static {

Interpreter.register("MyInterpreterName", MyClassName.class.getName(), new InterpreterPropertyBuilder() .add("property1", "default value", "Description of property1").build()); }

slide-20
SLIDE 20

@doanduyhai

To register your interpreter as default

  • Edit the enum ZeppelinConfiguration.ConfVars
  • Add your interpreter FQCN in the property ZEPPELIN_INTERPRETERS

20

slide-21
SLIDE 21

@doanduyhai

To register your interpreter in config files

  • Create conf/zeppelin-site.xml from conf/zeppelin-site.xml.template
  • Add your interpreter FQCN in the property zeppelin.interpreters

21

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

  • rg.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,
  • rg.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.shell.ShellInterpreter,
  • rg.apache.zeppelin.hive.HiveInterpreter,com.me.MyNewInterpreter

</value> </property>

slide-22
SLIDE 22

@doanduyhai

Simple AsciiDoc Interpreter

22

Zeppelin Server

AsciiDoc Interpreter JVM Zeppelin Engine

Raw Text Block Raw Text Block Converted To HTML HTML Output

① ② ③ ④ JVM

slide-23
SLIDE 23

@doanduyhai

Simple interpreter (AsciiDoc)

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-24
SLIDE 24

@doanduyhai

Cassandra Interpreter Architecture

24

Cassandra Interpreter JVM

Display Results as HTML

① ② ⑤ Zeppelin Server

JVM

Raw Text Block Raw Text Block Cassandra

Cassandra Java Driver

Async CQL statements

Render HTML

slide-25
SLIDE 25

@doanduyhai

Cassandra Interpreter Commands

25

Native CQL statements SELECT * FROM …; INSERT INTO …; … Schema commands DESCRIBE TABLE …; DESCRIBE KEYSPACE …; … Prepared statements Commands @prepare …; @bind …; @remove_prepared …; Help command HELP; Options Commands @consistency …; @retryPolicy …; @fetchSize …;

slide-26
SLIDE 26

@doanduyhai

Complex interpreter (Cassandra)

https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation

slide-27
SLIDE 27

Zeppelin future

  • Roadmap
slide-28
SLIDE 28

@doanduyhai

Roadmap & future

  • More graph options (Map viz ZEPPELIN-157)
  • Helium project, packaging Zeppelin view, logic (code) & resource into

Applications

  • Interpreters packaging re-design
  • ship & compile core interpreters only
  • third-parties interpreters can be pulled from repository
  • which interpreter is core ? Who will maintain ? Community….
  • Integrate security (Apache Shiro, ZEPPELIN-53 )

28

slide-29
SLIDE 29

@doanduyhai

Roadmap & future

  • Out of incubation state to become 1st class Apache project

29

slide-30
SLIDE 30

@doanduyhai

Q & R

slide-31
SLIDE 31

@doanduyhai

Thank You

@doanduyhai duy_hai.doan@datastax.com http://zeppelin.incubator.apache.org/

slide-32
SLIDE 32

@doanduyhai