Data science lifecycle with Apache Zeppelin (incubating)

Preview:

Citation preview

Data science lifecycle with Apache Zeppelin (incubating)

NFLabs for ApacheCon ’15 EU

Content

1. Data science lifecycle 2. Zeppelin for data scientists3. Zeppelin for organizations4. Project Roadmap

Data science lifecycle

Data Science: process

https://en.wikipedia.org/wiki/Data_analysis

Data Science: tools

MLlib

Data Science: people

Engineer Data Scientist

DevOps Business

http://aarondavis.design/

Content

1. Data science lifecycle2. Zeppelin for data scientists 3. Zeppelin for organizations4. Project Roadmap

Zeppelin for data scientist

Project Timeline

ASF Incubation12.2014

08.2013 NFLabs Internal project Hive/Shark

http://zeppelin.incubator.apache.org

12.2012 Commercial App using AMP Lab Shark 0.5

10.2013 Prototype Hive/Shark

Hadoop Landscape

Cloudera-ML

ML-base

MRQL

Shark

?

Commercial App 12.2012

OSS Prototype 10.2013

OSS Prototype 10.2013

OSS Prototype 08.2014

OSS Prototype 08.2014

Third-party Products 10.2014

Apache Incubation Proposal11.2014

Acceptance by Incubator 23.12.2014

Current Status

1 Release

63 Contributors worldwide

655 Stars on GH

300/900 Emails at users/dev @i.a.o

Interactive Notebooks

Interactive Visualization

Multiple Backends

Zeppelin & Friends

Z-Manager

ZeppelinHub

…⋯

Collaboration/Sharing

Packaging & Deployment Zeppelin + Full stack on a cloud

Packages Backend Integration

Online Viewer

Deployment

As a Service

Before

Cloudera-ML

ML-base

MRQL

Shark

?

After

Cloudera-ML

ML-base

MRQL

Shark

LIVE DEMO

Content

1. Data science lifecycle2. Zeppelin for data scientists3. Zeppelin for organizations 4. Project Roadmap

Zeppelin for organizations

An Engineer

engineer by http://aarondavis.design/

A Team

engineer by http://aarondavis.design/

An Organization

engineer by http://aarondavis.design/

That’s too many!

engineer by http://aarondavis.design/

What is the problem?

Too much:Install

Configure

Cluster resources

Solution?

We have containers

+

reverse proxy

Z Manager PoC

httpd + mod_php

nginx

Linux box

engineer by http://aarondavis.design/

2 days, bash + php :(

Z Manager PoC

Z Manager

http://github.com/NFLabs/z-manager

Apache 2.0 Licence

Containerized deployment per user

Reverse proxy

Single binary

Simple web application

Z Manager

SGA to ASF coming *

Z Manager

Auto-update

engineer by http://aarondavis.design/

Linux box

go + react :)

Z Manager process

Z Manager

LIVE DEMO

Content

1. Data science lifecycle2. Zeppelin for data scientists3. Zeppelin for organizations4. Project Roadmap

Project roadmap

People do the similar workwith different data

New visualizationModel & AlgorithmData process pipeline

http://aarondavis.design/

Package and distribute work

New visualizationModel & AlgorithmData process pipeline

PkgRepo

http://aarondavis.design/

Helium

https://s.apache.org/helium

Platform for

on top of Apache Zeppelin

Data Analytics Application

Helium Application

= +View Algorithm

Zeppelin provided Resources

Resources

Data

Computing

Any java object

����������� ������������������  -����������� ������������������  Result����������� ������������������  of����������� ������������������  last����������� ������������������  execution����������� ������������������  -����������� ������������������  JDBC����������� ������������������  connection����������� ������������������  (from����������� ������������������  JDBC����������� ������������������  Interpreter)*

����������� ������������������  -����������� ������������������  SparkContext����������� ������������������  (from����������� ������������������  SparkInterpreter)����������� ������������������  -����������� ������������������  Flink����������� ������������������  environment����������� ������������������  (from����������� ������������������  FlinkInterpreter)*

-����������� ������������������  Provided����������� ������������������  by����������� ������������������  user����������� ������������������  created����������� ������������������  Interpreter-����������� ������������������  Provided����������� ������������������  by����������� ������������������  user����������� ������������������  created����������� ������������������  Helium����������� ������������������  application����������� ������������������  

Application Examples

Data

Computing

-����������� ������������������  ex)����������� ������������������  get����������� ������������������  git����������� ������������������  commit����������� ������������������  log����������� ������������������  data����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  https://github.com/Leemoonsoo/zeppelin-gitcommitdata

Visualization

����������� ������������������  ����������� ������������������  -����������� ������������������  ex)����������� ������������������  run����������� ������������������  cpu����������� ������������������  usage����������� ������������������  monitoring����������� ������������������  code����������� ������������������  across����������� ������������������  spark����������� ������������������  cluster,����������� ������������������  using����������� ������������������  SparkContext ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  https://github.com/Leemoonsoo/zeppelin-sparkmon

-����������� ������������������  ex)����������� ������������������  display����������� ������������������  result����������� ������������������  data����������� ������������������  as����������� ������������������  a����������� ������������������  wordcloud����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  https://github.com/Leemoonsoo/zeppelin-wordcloud

How it works

Zeppelin����������� ������������������  Server

Web����������� ������������������  browser

View

Interpreter����������� ������������������  Process

Algorithm

Resource����������� ������������������  pool

Resource����������� ������������������  pool

Resource����������� ������������������  pools����������� ������������������  are����������� ������������������  connected

“Algorithm����������� ������������������  runs����������� ������������������  where����������� ������������������  resource����������� ������������������  exists”

API

class YourApplication extends org.apache.zeppelin.helium.Application { @Override public void run(ApplicationArgument arg, InterpreterContext context) { ….. } }

Easy����������� ������������������  API

Just����������� ������������������  extend����������� ������������������  helium.Application

Application Spec

{ mavenArtifact : "groupId:artifactId:version", className : "your.helium.application.Class", icon : "fa fa-cloud", name : "My app name", description : “some description", consume : [ "org.apache.spark.SparkContext" ] }

Simple

Writing����������� ������������������  a����������� ������������������  spec����������� ������������������  file����������� ������������������  allow����������� ������������������  Zeppelin����������� ������������������  load����������� ������������������  application

Deploy

Public

Repository

Private

Repository

Handy����������� ������������������  

Private

Public

Packaged����������� ������������������  to����������� ������������������  Jar����������� ������������������  and����������� ������������������  ����������� ������������������  

Distributed����������� ������������������  through����������� ������������������  

Maven

Downloaded����������� ������������������  on����������� ������������������  the����������� ������������������  fly����������� ������������������  

and����������� ������������������  run����������� ������������������  when����������� ������������������  user����������� ������������������  selects����������� ������������������  

it

LIVE DEMO

Lee moon soomoon@nflabs.com

Alexander Bezzubovabezzubov@nflabs.com

THANK YOU

Recommended