SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Oozie Evolution
Gateway to Hadoop Eco-System


             Mohammad Islam
Agenda

•    What is Oozie?
•    What is in the Next Release?
•    Challenges
•    Future Works
•    Q&A
Oozie in Hadoop Eco-System

                Oozie




                               HCatalog
        Pig    Sqoop    Hive
Oozie




              Map-Reduce

                  HDFS
Oozie : The Conductor
A Workflow Engine
•  Oozie executes workflow defined as DAG of jobs
•  The job type includes: Map-Reduce/Pig/Hive/Any script/
   Custom Java Code etc
                                      M/R
                                   streaming
                                       job


             M/R
  start               fork                           join
             job



                                     Pig                    MORE
                                                                          decision
                                     job



                                                        M/R                   ENOUGH
                                                        job




                                               FS
                             end                                   Java
                                               job
A Scheduler
•  Oozie executes workflow based on:
   –  Time Dependency (Frequency)
   –  Data Dependency

                 Oozie Server
                                        Check
  WS API           Oozie            Data Availability
                 Coordinator

                   Oozie
 Oozie            Workflow
 Client                                     Hadoop
REST-API for Hadoop Components

•  Direct access to Hadoop components
  –  Emulates the command line through REST
     API.
•  Supported Products:
  –  Pig
  –  Map Reduce
Three Questions …
 Do you need Oozie?


Q1 : Do you have multiple jobs with
     dependency?
Q2 : Does your job start based on time or data
     availability?
Q3 : Do you need monitoring and operational
     support for your jobs?
   If any one of your answers is YES,
   then you should consider Oozie!
What Oozie is NOT

•  Oozie is not a resource scheduler

•  Oozie is not for off-grid scheduling
   o  Note: Off-grid execution is possible through
   SSH action.

•  If you want to submit your job occasionally,
   Oozie is an option.
    o  Oozie provides REST API based submission.
Oozie in Apache
Main Contributors
Oozie in Apache

•  Y! internal usages:
  –  Total number of user : 375
  –  Total number of processed jobs ≈ 750K/
     month
•  External downloads:
  –  2500+ in last year from GitHub
  –  A large number of downloads maintained by
     3rd party packaging.
Oozie Usages Contd.

•  User Community:
  –  Membership
    •  Y! internal - 286
    •  External – 163
  –  Message (approximate)
    •  Y! internal – 7/day
    •  External – 8/day
Next Release …

•  Integration with Hadoop 0.23

•  HCatalog integration
  –  Non-polling approach
Usability

•    Script Action
•    Distcp Action
•    Suspend Action
•    Mini-Oozie for CI
     –  Like Mini-cluster
•  Support multiple versions
     –  Pig, Distcp, Hive etc.
Reliability

•  Auto-Retry in WF Action level

•  High-Availability
  –  Hot-Warm through ZooKeeper
Manageability

•  Email action

•  Query Pig Stats/Hadoop Counters
  –  Runtime control of Workflow based on stats
  –  Application-level control using the stats
Challenges : Queue Starvation

•  Which Queue?
  –  Not a Hadoop queue issue.
  –  Oozie internal queue to process the Oozie
     sub-tasks.
  –  Oozie’s main execution engine.
•  User Problem :
  –  Job’s kill/suspend takes very long time.
Challenges : Queue Starvation
Technical Problem:
           •  Before   execution, every task acquires lock on the job id.
           •  Specialhigh-priority tasks (such as Kill or Suspend)
           couldn’t get the lock and therefore, starve.


           In Queue                                          J1   J2

 J1   J1        J2      J1(H)   J2                           J1



       Starvation for High Priority Task!
Challenges : Queue Starvation
Resolution:
    • Add the high priority task in both the interrupt list and normal queue.
   •  Before de-queue, check if there is any task in the interrupt list for the
   same job id. If there is one, execute that first.



             In Queue                                                 J1    J2

 J1     J1         J2        J1(H)         J2                        J1

                finds a task in interrupt queue

             In Interrupt List

J1(H)
Oozie Futures

•  Easy adoption
  –  Modeling tool
  –  IDE integration
  –  Modular Configurations
•  Allow job notification through JMS
•  Event-based data processing
•  Prioritization
  –  By user, system level.
Take Away ..

•  Oozie is
  –  In Apache!
  –  Reliable and feature-rich.
  –  Growing fast.
Q&A




                  Mohammad K Islam
               kamrul@yahoo-inc.com
      http://incubator.apache.org/oozie/
Who needs Oozie?

•  Multiple jobs that have sequential/
   conditional/parallel dependency
•  Need to run job/Workflow periodically.
•  Need to launch job when data is available.
•  Operational requirements:
  –  Easy monitoring
  –  Reprocessing
  –  Catch-up
Challenges : Queue Starvation
Problem:
                 •  Consider queue with tasks of type T1 and T2. Max Concurrency = 2.
                 •  Over-provisioned task (marked by red) is pushed back to the queue.
                 •  At high load, it gets penalized in favor of same type, but later arrival
                    of tasks .


             In Queue                                   Running             C (T1) C (T2)

T1      T2     T1       T1    T1     T2      T1                              012      01



     Starvation!
     T1 cannot execute and is pushed to head of queue
Challenges : Queue Starvation
Resolution:
            •  Before de-queuing any task, check its concurrency.
            •  If violated, skip and get the next task.


          In Queue                               Running           C (T1) C (T2)

T1   T2     T1       T1   T1    T2     T1                          012     01 2


Enqueue T2 now   T1 cannot execute, so skip by one normallyfront
                                T1 now executes node to

Mais conteúdo relacionado

Semelhante a Oozie hugnov11

Oozie Summit 2011
Oozie Summit 2011Oozie Summit 2011
Oozie Summit 2011mislam77
 
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for Hadoop
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for HadoopMay 2012 HUG: Oozie: Towards a scalable Workflow Management System for Hadoop
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for HadoopYahoo Developer Network
 
Oozie HUG May12
Oozie HUG May12Oozie HUG May12
Oozie HUG May12mislam77
 
Workflow Engines for Hadoop
Workflow Engines for HadoopWorkflow Engines for Hadoop
Workflow Engines for HadoopJoe Crobak
 
Oozie sweet
Oozie sweetOozie sweet
Oozie sweetmislam77
 
July 2012 HUG: Overview of Oozie Qualification Process
July 2012 HUG: Overview of Oozie Qualification ProcessJuly 2012 HUG: Overview of Oozie Qualification Process
July 2012 HUG: Overview of Oozie Qualification ProcessYahoo Developer Network
 
Outbrain River Presentation at Reversim Summit 2013
Outbrain River Presentation at Reversim Summit 2013Outbrain River Presentation at Reversim Summit 2013
Outbrain River Presentation at Reversim Summit 2013Harel Ben-Attia
 
Lessons from Branch's launch
Lessons from Branch's launchLessons from Branch's launch
Lessons from Branch's launchaflock
 
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query Performance
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query PerformanceInnovations in Apache Hadoop MapReduce Pig Hive for Improving Query Performance
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query PerformanceDataWorks Summit
 
2013.09.10 Giraph at London Hadoop Users Group
2013.09.10 Giraph at London Hadoop Users Group2013.09.10 Giraph at London Hadoop Users Group
2013.09.10 Giraph at London Hadoop Users GroupNitay Joffe
 
2013 06-03 berlin buzzwords
2013 06-03 berlin buzzwords2013 06-03 berlin buzzwords
2013 06-03 berlin buzzwordsNitay Joffe
 
Asynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscanaAsynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscanaMatteo Baglini
 
Luigi presentation OA Summit
Luigi presentation OA SummitLuigi presentation OA Summit
Luigi presentation OA SummitOpen Analytics
 
Everything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about OozieEverything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about OozieChicago Hadoop Users Group
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftLee Stott
 
Apache Tez – Present and Future
Apache Tez – Present and FutureApache Tez – Present and Future
Apache Tez – Present and FutureJianfeng Zhang
 
Apache Tez – Present and Future
Apache Tez – Present and FutureApache Tez – Present and Future
Apache Tez – Present and FutureRajesh Balamohan
 
Storm distributed processing
Storm distributed processingStorm distributed processing
Storm distributed processingducquoc_vn
 
C# Async/Await Explained
C# Async/Await ExplainedC# Async/Await Explained
C# Async/Await ExplainedJeremy Likness
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewPradeep Elankumaran
 

Semelhante a Oozie hugnov11 (20)

Oozie Summit 2011
Oozie Summit 2011Oozie Summit 2011
Oozie Summit 2011
 
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for Hadoop
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for HadoopMay 2012 HUG: Oozie: Towards a scalable Workflow Management System for Hadoop
May 2012 HUG: Oozie: Towards a scalable Workflow Management System for Hadoop
 
Oozie HUG May12
Oozie HUG May12Oozie HUG May12
Oozie HUG May12
 
Workflow Engines for Hadoop
Workflow Engines for HadoopWorkflow Engines for Hadoop
Workflow Engines for Hadoop
 
Oozie sweet
Oozie sweetOozie sweet
Oozie sweet
 
July 2012 HUG: Overview of Oozie Qualification Process
July 2012 HUG: Overview of Oozie Qualification ProcessJuly 2012 HUG: Overview of Oozie Qualification Process
July 2012 HUG: Overview of Oozie Qualification Process
 
Outbrain River Presentation at Reversim Summit 2013
Outbrain River Presentation at Reversim Summit 2013Outbrain River Presentation at Reversim Summit 2013
Outbrain River Presentation at Reversim Summit 2013
 
Lessons from Branch's launch
Lessons from Branch's launchLessons from Branch's launch
Lessons from Branch's launch
 
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query Performance
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query PerformanceInnovations in Apache Hadoop MapReduce Pig Hive for Improving Query Performance
Innovations in Apache Hadoop MapReduce Pig Hive for Improving Query Performance
 
2013.09.10 Giraph at London Hadoop Users Group
2013.09.10 Giraph at London Hadoop Users Group2013.09.10 Giraph at London Hadoop Users Group
2013.09.10 Giraph at London Hadoop Users Group
 
2013 06-03 berlin buzzwords
2013 06-03 berlin buzzwords2013 06-03 berlin buzzwords
2013 06-03 berlin buzzwords
 
Asynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscanaAsynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscana
 
Luigi presentation OA Summit
Luigi presentation OA SummitLuigi presentation OA Summit
Luigi presentation OA Summit
 
Everything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about OozieEverything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about Oozie
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop Microsoft
 
Apache Tez – Present and Future
Apache Tez – Present and FutureApache Tez – Present and Future
Apache Tez – Present and Future
 
Apache Tez – Present and Future
Apache Tez – Present and FutureApache Tez – Present and Future
Apache Tez – Present and Future
 
Storm distributed processing
Storm distributed processingStorm distributed processing
Storm distributed processing
 
C# Async/Await Explained
C# Async/Await ExplainedC# Async/Await Explained
C# Async/Await Explained
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
 

Último

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Oozie hugnov11

  • 1. Oozie Evolution Gateway to Hadoop Eco-System Mohammad Islam
  • 2. Agenda •  What is Oozie? •  What is in the Next Release? •  Challenges •  Future Works •  Q&A
  • 3. Oozie in Hadoop Eco-System Oozie HCatalog Pig Sqoop Hive Oozie Map-Reduce HDFS
  • 4. Oozie : The Conductor
  • 5. A Workflow Engine •  Oozie executes workflow defined as DAG of jobs •  The job type includes: Map-Reduce/Pig/Hive/Any script/ Custom Java Code etc M/R streaming job M/R start fork join job Pig MORE decision job M/R ENOUGH job FS end Java job
  • 6. A Scheduler •  Oozie executes workflow based on: –  Time Dependency (Frequency) –  Data Dependency Oozie Server Check WS API Oozie Data Availability Coordinator Oozie Oozie Workflow Client Hadoop
  • 7. REST-API for Hadoop Components •  Direct access to Hadoop components –  Emulates the command line through REST API. •  Supported Products: –  Pig –  Map Reduce
  • 8. Three Questions … Do you need Oozie? Q1 : Do you have multiple jobs with dependency? Q2 : Does your job start based on time or data availability? Q3 : Do you need monitoring and operational support for your jobs? If any one of your answers is YES, then you should consider Oozie!
  • 9. What Oozie is NOT •  Oozie is not a resource scheduler •  Oozie is not for off-grid scheduling o  Note: Off-grid execution is possible through SSH action. •  If you want to submit your job occasionally, Oozie is an option. o  Oozie provides REST API based submission.
  • 10. Oozie in Apache Main Contributors
  • 11. Oozie in Apache •  Y! internal usages: –  Total number of user : 375 –  Total number of processed jobs ≈ 750K/ month •  External downloads: –  2500+ in last year from GitHub –  A large number of downloads maintained by 3rd party packaging.
  • 12. Oozie Usages Contd. •  User Community: –  Membership •  Y! internal - 286 •  External – 163 –  Message (approximate) •  Y! internal – 7/day •  External – 8/day
  • 13. Next Release … •  Integration with Hadoop 0.23 •  HCatalog integration –  Non-polling approach
  • 14. Usability •  Script Action •  Distcp Action •  Suspend Action •  Mini-Oozie for CI –  Like Mini-cluster •  Support multiple versions –  Pig, Distcp, Hive etc.
  • 15. Reliability •  Auto-Retry in WF Action level •  High-Availability –  Hot-Warm through ZooKeeper
  • 16. Manageability •  Email action •  Query Pig Stats/Hadoop Counters –  Runtime control of Workflow based on stats –  Application-level control using the stats
  • 17. Challenges : Queue Starvation •  Which Queue? –  Not a Hadoop queue issue. –  Oozie internal queue to process the Oozie sub-tasks. –  Oozie’s main execution engine. •  User Problem : –  Job’s kill/suspend takes very long time.
  • 18. Challenges : Queue Starvation Technical Problem: •  Before execution, every task acquires lock on the job id. •  Specialhigh-priority tasks (such as Kill or Suspend) couldn’t get the lock and therefore, starve. In Queue J1 J2 J1 J1 J2 J1(H) J2 J1 Starvation for High Priority Task!
  • 19. Challenges : Queue Starvation Resolution: • Add the high priority task in both the interrupt list and normal queue. •  Before de-queue, check if there is any task in the interrupt list for the same job id. If there is one, execute that first. In Queue J1 J2 J1 J1 J2 J1(H) J2 J1 finds a task in interrupt queue In Interrupt List J1(H)
  • 20. Oozie Futures •  Easy adoption –  Modeling tool –  IDE integration –  Modular Configurations •  Allow job notification through JMS •  Event-based data processing •  Prioritization –  By user, system level.
  • 21. Take Away .. •  Oozie is –  In Apache! –  Reliable and feature-rich. –  Growing fast.
  • 22. Q&A Mohammad K Islam kamrul@yahoo-inc.com http://incubator.apache.org/oozie/
  • 23. Who needs Oozie? •  Multiple jobs that have sequential/ conditional/parallel dependency •  Need to run job/Workflow periodically. •  Need to launch job when data is available. •  Operational requirements: –  Easy monitoring –  Reprocessing –  Catch-up
  • 24. Challenges : Queue Starvation Problem: •  Consider queue with tasks of type T1 and T2. Max Concurrency = 2. •  Over-provisioned task (marked by red) is pushed back to the queue. •  At high load, it gets penalized in favor of same type, but later arrival of tasks . In Queue Running C (T1) C (T2) T1 T2 T1 T1 T1 T2 T1 012 01 Starvation! T1 cannot execute and is pushed to head of queue
  • 25. Challenges : Queue Starvation Resolution: •  Before de-queuing any task, check its concurrency. •  If violated, skip and get the next task. In Queue Running C (T1) C (T2) T1 T2 T1 T1 T1 T2 T1 012 01 2 Enqueue T2 now T1 cannot execute, so skip by one normallyfront T1 now executes node to