28
董西成 HADOOP YARN在异构环境下应用与实践

TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

董西成

HADOOP YARN在异构环境下应用与实践

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

ARCHITECTURE ndash YARN

YARN distributed operating system

MapReduce Spark

(Streaming) Voidbox

machine bdquo machine

NestoPresto

machine

ARCHITECTURE ndash YARN

YARN modules

Resource Manager

Client

NodeManager

HDFS

NodeManager

HDFS

NodeManager

HDFS

YARN application1

Container (MapTask)

MR AppMaster

Container (MapTask)

Client

Application

Master

Container

YARN application2

bull Batch Jobs bull Take from a few seconds to a few days to complete

bull Eg MapReduce Spark

bull Long-running Services bull Should ldquoneverrdquo go down handle short-lived latency-sensitive requests

bull EgPrestoNesto Spark Streaming Web Services

bull YARN Data Operating System bull ResourceManager HA amp Recovery

bull NodeManager Recovery

bull Resource Scheduling(eg label-based scheduling)

bull Apache Slider amp Apache Twill

DISTRIBUTED APPLICATION TYPES

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 2: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

ARCHITECTURE ndash YARN

YARN distributed operating system

MapReduce Spark

(Streaming) Voidbox

machine bdquo machine

NestoPresto

machine

ARCHITECTURE ndash YARN

YARN modules

Resource Manager

Client

NodeManager

HDFS

NodeManager

HDFS

NodeManager

HDFS

YARN application1

Container (MapTask)

MR AppMaster

Container (MapTask)

Client

Application

Master

Container

YARN application2

bull Batch Jobs bull Take from a few seconds to a few days to complete

bull Eg MapReduce Spark

bull Long-running Services bull Should ldquoneverrdquo go down handle short-lived latency-sensitive requests

bull EgPrestoNesto Spark Streaming Web Services

bull YARN Data Operating System bull ResourceManager HA amp Recovery

bull NodeManager Recovery

bull Resource Scheduling(eg label-based scheduling)

bull Apache Slider amp Apache Twill

DISTRIBUTED APPLICATION TYPES

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 3: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

ARCHITECTURE ndash YARN

YARN distributed operating system

MapReduce Spark

(Streaming) Voidbox

machine bdquo machine

NestoPresto

machine

ARCHITECTURE ndash YARN

YARN modules

Resource Manager

Client

NodeManager

HDFS

NodeManager

HDFS

NodeManager

HDFS

YARN application1

Container (MapTask)

MR AppMaster

Container (MapTask)

Client

Application

Master

Container

YARN application2

bull Batch Jobs bull Take from a few seconds to a few days to complete

bull Eg MapReduce Spark

bull Long-running Services bull Should ldquoneverrdquo go down handle short-lived latency-sensitive requests

bull EgPrestoNesto Spark Streaming Web Services

bull YARN Data Operating System bull ResourceManager HA amp Recovery

bull NodeManager Recovery

bull Resource Scheduling(eg label-based scheduling)

bull Apache Slider amp Apache Twill

DISTRIBUTED APPLICATION TYPES

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 4: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

ARCHITECTURE ndash YARN

YARN modules

Resource Manager

Client

NodeManager

HDFS

NodeManager

HDFS

NodeManager

HDFS

YARN application1

Container (MapTask)

MR AppMaster

Container (MapTask)

Client

Application

Master

Container

YARN application2

bull Batch Jobs bull Take from a few seconds to a few days to complete

bull Eg MapReduce Spark

bull Long-running Services bull Should ldquoneverrdquo go down handle short-lived latency-sensitive requests

bull EgPrestoNesto Spark Streaming Web Services

bull YARN Data Operating System bull ResourceManager HA amp Recovery

bull NodeManager Recovery

bull Resource Scheduling(eg label-based scheduling)

bull Apache Slider amp Apache Twill

DISTRIBUTED APPLICATION TYPES

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 5: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Batch Jobs bull Take from a few seconds to a few days to complete

bull Eg MapReduce Spark

bull Long-running Services bull Should ldquoneverrdquo go down handle short-lived latency-sensitive requests

bull EgPrestoNesto Spark Streaming Web Services

bull YARN Data Operating System bull ResourceManager HA amp Recovery

bull NodeManager Recovery

bull Resource Scheduling(eg label-based scheduling)

bull Apache Slider amp Apache Twill

DISTRIBUTED APPLICATION TYPES

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 6: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Heterogeneous Causes bull Static factors Machines(CPU memory network OS libraries)

bull Dynamic factors Load Network Slow Disk bdquo

bull Solutions for static factors bull Distinguish machines and assign to different frameworks

bull Eg 128GB-memory machines for spark 10G-network machines for spark streamingnestopresto

bull Solutions for dynamical factors bull Solve in framework level

bull For MapReduceSpark speculative execution

bull For others

HETEROGENEOUS ISSUES

6

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 7: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

AGENDA

bull Background

bull Label-based scheduling

bull Framework On YARN

bull Experience

bull Q amp A

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 8: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

WHY LABEL-BASED SCHEDULING

bull Distinguish goodbad machines for different Apps

bull Eg Large memory machine for spark

bull Apps require special librariesservices installed

bull Spark MLlib native libraries

bull Voidbox docker engines

bull Machine-level isolation for key Apps

bull Low-latency Apps spark streamingprestonesto

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 9: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

LABEL-BASED SCHEDULING

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

node

Resource Manager (Capacity Scheduler)

node

node

node

streaming-node

mr-node

spark-nodemr-node

rack1 rack2 rack3 rack4 rack5

root

a c b

streaming-node mr-node

spark-node

spark-node node docker-node

d

docker-

node c1 c2

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 10: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

LEARN FROM LABEL-BASED SCHEDULING

bull Benefit

bull Staticdynamic machine-level partition

bull Elastic scalability for Apps

bull Latch to enter maintenance mode

bull Issue

bull Only Capacity Scheduler is supported

bull YARN Web Portal does not support well

bull Hurt data locality

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 11: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 12: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull MapReduce

bull Spark

bull Spark Streaming

bull Real-time processing

bull NestoPresto

bull MPP engines

bull Voidbox

bull Docker on yarn

FRAMEWORKS ON YARN

1

2

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 13: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull What is Nesto

bull A distributed query engine for parquet-like nested data

bull MPP + Parquet (On HDFS)

bull Nesto features

bull support large nested data(200+ columns 4 levels)

bull support filter groupby limit and map-side join

bull Support json expression and Programming API

bull use cases in hulu

bull Segment analysis

bull Cohort analysis

bull Funnel analysis

WHAT IS NESTO

1

3

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 14: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Requirements

bull Run Specified N containers(servers) One container on node

bull Fault tolerance

bull Tracking web UI

bull Log rotation

bull Services (Never die)

bull Implementation

bull ApplicationMaster scheduling amp fault tolerance

bull Container NestoServer (Worker)

NESTO ON YARN (1)

1

4

Nesto Server

Nesto Server

Nesto Server

Zookeeper

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 15: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

NESTO ON YARN (2)

1

5

Zookeeper Resource Manager

Node Manager

Node Manager

Node Manager

Proxy

Nesto Server

AppMaster

Proxy

Nesto Server

Proxy

Nesto Server

Web server

yarn jar nesto-installnesto-010-SNAPSHOT-jar-with-dependenciesjar

comhulunestoyarnNestoYarnClient

-conf_path mntdata1homexichengdongnesto-srcyarnnesto-installconf

-framework_path hdfstmpxichengnestonesto-yarntargz

-master_memory 2048 -container_memory 2048 -container_vcores 1 -num_containers 3

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 16: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Nesto deployment

bull Nesto is not a high-concurrency system

bull Mixed deployment with other batchOLAP systems on YARN

bull Slow taskworker

bull Slow task detection and re-dispatch

bull Worker priority scheduling based on weight

NESTO IN HETEROGENEOUS CLUSTER

1

6

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 17: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

WHAT IS VOIDBOX

1

7

LIGHTWEIGHT VM

RUNTIME ISOLATION

UNION FILE SYSTEM

RESOURCE MANAGEMENT

SCHEDULING

FAULT TOLERANCE

DISTRIBUTE COMPUTATION

ARBITRARY APPLICATION

FAULT TOLERANCE

VOIDBOX IS A PROGRAMMING FRAMEWORK

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 18: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

VOIDBOX SERVICE EXAMPLE

1

8

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 19: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

VOIDBOX COMPONENTS

API

RUNTIME MODE REGISTRYMGMT

VOIDBOX MASTER VOIDBOX PROXY

DAG SERVICE TASK

Core

Framework

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 20: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

VOIDBOX ARCHITECTURE

2

0

YARN modules

Resource Manager

Voidbox Client

NodeManager

NodeManager

NodeManager

Docker Engine

Docker Engine

Voidbox Master

State Server

Container

Voidbox Proxy

Container

Voidbox Proxy

Docker Registry In S3

HDFS

HDFS

HDFS

Voidbox Driver

Pull

Voidbox modules

Docker modules

Voidbox is a standard appliction on top of YARN just like

MapReduce

server

server

server

server

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 21: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Batch Jobs

bull Data Dump

bull Facematch distributed application face recognition in video

bull Long-running Services

bull Nesto WebServer

bull Spark HistoryServerJobServer

bull Kinko thumbnail Generator Service

VOIDBOX IN HULU

2

1

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 22: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

AGENDA

bull Background

bull Label-based scheduling

bull Frameworks On YARN

bull Experience

bull Q amp A

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 23: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Container Description

bull Host rack

bull Relax locality

bull Blacklisted Container

bull ApplicationMaster could put certain nodes into blacklist then no more containers on those nodes will be received

bull Release unused containers

bull If AM allocates K containers more containers may be received

EXPERIENCE 1 CONTAINER API

2

3

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 24: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Whatrsquos tracking url

bull URL of web server insideoutside AM

bull Jetty or netty

bull Two tracking URL

bull Register tracking url (running)

bull Unregister tracking url (completed)

bull URL Format

bull httphostport

bull Direct URL to ajsp use ldquoajsprdquo not ldquoajsprdquo ldquoabhtmlrdquo not ldquoabhtmlrdquo

EXPERIENCE 2 TRACKING URL

2

4

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 25: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull AM or Container run command

bull $JAVA_HOMEbinjava -Dnestoservercontainerlog=ltLOG_DIRgt -Dlog4jconfiguration=log4jproperties bdquo comhuluNestoServer 1gtgtltLOG_DIRgtserverlog 2gtgtltLOG_DIRgtserverlog

bull ltLOG_DIRgt will be replaced by YARN framework

bull log4jproperties

EXPERIENCE 3 LOG ROTATION

2

5

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 26: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Allocate more memory than JVM heap size

EXPERIENCE 4 MEMORY OVERHEAD

2

6

Java JVM

Non-Java memory

Java Server

Container Memory

Hadoop Streaming is a good example

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 27: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

bull Understand container environment

bull AMcontainer command is written to a shell script

bull How to check the shell script content

bull Register tracking url (running)

EXPERIENCE 5 DEBUG

2

7

Q amp A

28

Page 28: TAO Program Updatepic.huodongjia.com/ganhuodocs/2016-09-29/1475120329.28.pdf · YARN application1 Container (MapTask) MR AppMaster Container (MapTask) Client Applicatio n Master Container

Q amp A

28