Skip to content

Instantly share code, notes, and snippets.

@hsaputra
Last active October 25, 2016 04:23
Show Gist options
  • Save hsaputra/00348783804c7e0b4ad5 to your computer and use it in GitHub Desktop.
Save hsaputra/00348783804c7e0b4ad5 to your computer and use it in GitHub Desktop.
Apache Twill Flows
Apache Twill Launch Flow
====================
HelloWorld
TwillRunnerService = new YarnTwillRunnerService
YarnTwillRunnerService.start
YarnTwillRunnerService.watchLiveServices
YarnTwillRunnerService.prepare
YarnTwillPreparer.start
YarnAppClient.createLauncher -> This will be instance of ApplicationMasterProcessLauncher
Create Callable to be passed to ControllerFactory to create YarnTwillController that will call ApplicationMasterProcessLauncher.launch
Add java command to execute in the container through ProcessLauncher
YarnTwillController.start
YarnTwillController.start
YarnTwillController.doStartup
Callable<ProcessController>.call -> See YarnTwillPreparer class for
Callable<ProcessController<YarnApplicationReport>> submitTask
ProcessLauncher.prepareLaunch
ProcessLauncher.launch
ApplicationMasterProcessLauncher.doLaunch
ApplicationSubmitter.submit
YarnClient.submitApplication
ApplicationMasterMain.main
ServiceMain.doMain
Services.chainStart
ApplicationMasterService.start
ApplicationMasterService.doRun
YarnAMClient.AllocateHandler
ApplicationMasterService.launchRunnables
RunningContainers.start(TwillContainerLauncher)
TwillContainerLauncher.start ( TwillContainerMain ) -> Main class for container.
start method will return instance of
TwillContainerController
ProcessController.addCommand -> Will return instance of PrepareLaunchContext to
start TwillLauncher which will run TwillContainerMain
ProcessLauncher.launch -> Returns instance of ProcessController
RunnableProcessLauncher.doLaunch
TwillContainerControllerImpl.start ( ProcessController )
RunningContainers.handleCompleted
YarnTwillController.createStatusPollingRunnable -> Check status of application
Apache Twill Message Flow
=====================
TwillRunnerService.lookup
YarnTwilRunnerService
YarnTwillController.sendCommand(runnableName, Command)
AbstractZKServiceController.sendCommand
AbstractZKServiceController.sendMessage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment