@doanduyhai
Apache Zeppelin, the missing GUI for your BigData eco-system
Duy Hai DOAN
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
@doanduyhai
Apache Zeppelin, the missing GUI for your BigData eco-system
Duy Hai DOAN
@doanduyhai
Who Am I ?
Duy Hai DOAN Cassandra technical advocate
☞ duy_hai.doan@datastax.com ☞ @doanduyhai
2
@doanduyhai
Datastax
3
What is Apache Zeppelin ?
Presentation Architecture
@doanduyhai
Zeppelin Presentation
5
@doanduyhai
Demo
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
@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
@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
Zeppelin UI Layout
Notebook Paragraph UI elements
@doanduyhai
Demo
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
Zeppelin Display System
Raw, Table, HTML Available graphs View modes Dynamic form Iframe export
@doanduyhai
Demo
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
Interpreter system
Core interpreters Third-parties interpreters Interpreters conf & usage
@doanduyhai
Interpreter processing lifecycle
①
Receive input commands/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
@doanduyhai
Core interpreters
15
@doanduyhai
Third-parties interpreters
16
@doanduyhai
Interpreter conf & usage
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
Writing An Interpreter
Simple interpreter example (AsciiDoc) Complex interpreter example (Cassandra)
@doanduyhai
Steps to write your own interpreter
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()); }
@doanduyhai
To register your interpreter as default
20
@doanduyhai
To register your interpreter in config files
21
<property> <name>zeppelin.interpreters</name> <value>org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,
</value> </property>
@doanduyhai
Simple AsciiDoc Interpreter
22
Zeppelin Server
AsciiDoc Interpreter JVM Zeppelin Engine
Raw Text Block Raw Text Block Converted To HTML HTML Output
① ② ③ ④ JVM
@doanduyhai
Simple interpreter (AsciiDoc)
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
@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
⑥
@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 …;
@doanduyhai
Complex interpreter (Cassandra)
https://github.com/doanduyhai/incubator-zeppelin/tree/ZeppelinPresentation
Zeppelin future
@doanduyhai
Roadmap & future
Applications
28
@doanduyhai
Roadmap & future
29
@doanduyhai
Q & R
@doanduyhai
@doanduyhai duy_hai.doan@datastax.com http://zeppelin.incubator.apache.org/
@doanduyhai