58
Data science lifecycle with Apache Zeppelin (incubating) NFLabs for ApacheCon ’15 EU

Data science lifecycle with Apache Zeppelin (incubating)

Embed Size (px)

Citation preview

Page 1: Data science lifecycle with Apache Zeppelin (incubating)

Data science lifecycle with Apache Zeppelin (incubating)

NFLabs for ApacheCon ’15 EU

Page 2: Data science lifecycle with Apache Zeppelin (incubating)

Content

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

Page 3: Data science lifecycle with Apache Zeppelin (incubating)

Data science lifecycle

Page 4: Data science lifecycle with Apache Zeppelin (incubating)

Data Science: process

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

Page 5: Data science lifecycle with Apache Zeppelin (incubating)

Data Science: tools

MLlib

Page 6: Data science lifecycle with Apache Zeppelin (incubating)

Data Science: people

Engineer Data Scientist

DevOps Business

http://aarondavis.design/

Page 7: Data science lifecycle with Apache Zeppelin (incubating)

Content

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

Page 8: Data science lifecycle with Apache Zeppelin (incubating)

Zeppelin for data scientist

Page 9: Data science lifecycle with Apache Zeppelin (incubating)

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

Page 10: Data science lifecycle with Apache Zeppelin (incubating)

Hadoop Landscape

Cloudera-ML

ML-base

MRQL

Shark

?

Page 11: Data science lifecycle with Apache Zeppelin (incubating)

Commercial App 12.2012

Page 12: Data science lifecycle with Apache Zeppelin (incubating)

OSS Prototype 10.2013

Page 13: Data science lifecycle with Apache Zeppelin (incubating)

OSS Prototype 10.2013

Page 14: Data science lifecycle with Apache Zeppelin (incubating)

OSS Prototype 08.2014

Page 15: Data science lifecycle with Apache Zeppelin (incubating)

OSS Prototype 08.2014

Page 16: Data science lifecycle with Apache Zeppelin (incubating)

Third-party Products 10.2014

Page 17: Data science lifecycle with Apache Zeppelin (incubating)

Apache Incubation Proposal11.2014

Page 18: Data science lifecycle with Apache Zeppelin (incubating)

Acceptance by Incubator 23.12.2014

Page 19: Data science lifecycle with Apache Zeppelin (incubating)

Current Status

1 Release

63 Contributors worldwide

655 Stars on GH

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

Page 20: Data science lifecycle with Apache Zeppelin (incubating)

Interactive Notebooks

Page 21: Data science lifecycle with Apache Zeppelin (incubating)

Interactive Visualization

Page 22: Data science lifecycle with Apache Zeppelin (incubating)

Multiple Backends

Page 23: Data science lifecycle with Apache Zeppelin (incubating)

Zeppelin & Friends

Z-Manager

ZeppelinHub

…⋯

Collaboration/Sharing

Packaging & Deployment Zeppelin + Full stack on a cloud

Packages Backend Integration

Page 24: Data science lifecycle with Apache Zeppelin (incubating)

Online Viewer

Page 25: Data science lifecycle with Apache Zeppelin (incubating)

Deployment

Page 26: Data science lifecycle with Apache Zeppelin (incubating)

As a Service

Page 27: Data science lifecycle with Apache Zeppelin (incubating)

Before

Cloudera-ML

ML-base

MRQL

Shark

?

Page 28: Data science lifecycle with Apache Zeppelin (incubating)

After

Cloudera-ML

ML-base

MRQL

Shark

Page 29: Data science lifecycle with Apache Zeppelin (incubating)

LIVE DEMO

Page 30: Data science lifecycle with Apache Zeppelin (incubating)

Content

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

Page 31: Data science lifecycle with Apache Zeppelin (incubating)

Zeppelin for organizations

Page 32: Data science lifecycle with Apache Zeppelin (incubating)

An Engineer

engineer by http://aarondavis.design/

Page 33: Data science lifecycle with Apache Zeppelin (incubating)

A Team

engineer by http://aarondavis.design/

Page 34: Data science lifecycle with Apache Zeppelin (incubating)

An Organization

engineer by http://aarondavis.design/

Page 35: Data science lifecycle with Apache Zeppelin (incubating)

That’s too many!

engineer by http://aarondavis.design/

Page 36: Data science lifecycle with Apache Zeppelin (incubating)

What is the problem?

Too much:Install

Configure

Cluster resources

Page 37: Data science lifecycle with Apache Zeppelin (incubating)

Solution?

We have containers

+

reverse proxy

Page 38: Data science lifecycle with Apache Zeppelin (incubating)
Page 39: Data science lifecycle with Apache Zeppelin (incubating)

Z Manager PoC

httpd + mod_php

nginx

Linux box

engineer by http://aarondavis.design/

2 days, bash + php :(

Page 40: Data science lifecycle with Apache Zeppelin (incubating)

Z Manager PoC

Page 41: Data science lifecycle with Apache Zeppelin (incubating)

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 *

Page 42: Data science lifecycle with Apache Zeppelin (incubating)

Z Manager

Auto-update

engineer by http://aarondavis.design/

Linux box

go + react :)

Z Manager process

Page 43: Data science lifecycle with Apache Zeppelin (incubating)

Z Manager

Page 44: Data science lifecycle with Apache Zeppelin (incubating)

LIVE DEMO

Page 45: Data science lifecycle with Apache Zeppelin (incubating)

Content

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

Page 46: Data science lifecycle with Apache Zeppelin (incubating)

Project roadmap

Page 47: Data science lifecycle with Apache Zeppelin (incubating)

People do the similar workwith different data

New visualizationModel & AlgorithmData process pipeline

http://aarondavis.design/

Page 48: Data science lifecycle with Apache Zeppelin (incubating)

Package and distribute work

New visualizationModel & AlgorithmData process pipeline

PkgRepo

http://aarondavis.design/

Page 49: Data science lifecycle with Apache Zeppelin (incubating)

Helium

https://s.apache.org/helium

Platform for

on top of Apache Zeppelin

Data Analytics Application

Page 50: Data science lifecycle with Apache Zeppelin (incubating)

Helium Application

= +View Algorithm

Zeppelin provided Resources

Page 51: Data science lifecycle with Apache Zeppelin (incubating)

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����������� ������������������  

Page 52: Data science lifecycle with Apache Zeppelin (incubating)

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

Page 53: Data science lifecycle with Apache Zeppelin (incubating)

How it works

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

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

View

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

Algorithm

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

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

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

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

Page 54: Data science lifecycle with Apache Zeppelin (incubating)

API

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

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

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

Page 55: Data science lifecycle with Apache Zeppelin (incubating)

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

Page 56: Data science lifecycle with Apache Zeppelin (incubating)

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

Page 57: Data science lifecycle with Apache Zeppelin (incubating)

LIVE DEMO