我读过关于Heron Documents关于Implementing a Custom Scheduler的文章。我知道我应该实现一些接口来实现自定义调度器,比如ILauncher、IPacking、IScheduler和IUploader。
我已经实现了实现IScheduler接口的IScheduler,我希望在自定义调度程序中使用LocalLauncher、LocalUploader和default Packing algorithm。
此外,我修改了位于conf/local/的名为conf/local/的苍鹭配置文件,以使用自定义调度程序。同时,我将CustomScheduler.jar添加到heron-core/lib/scheduler/中。但是,如日志所示,存在一些错误:
[2018-04-15 20:44:27 -0700] [STDERR] stderr: Exception in thread "main"
[2018-04-15 20:44:27 -0700] [STDERR] stderr: com.twitter.heron.spi.scheduler.SchedulerException: Failed to instantiate scheduler using class 'com.zyt.heron.custom.scheduler.CustomScheduler'
[2018-04-15 20:44:27 -0700] [STDERR] stderr: at com.twitter.heron.scheduler.utils.LauncherUtils.getSchedulerInstance(LauncherUtils.java:120)
[2018-04-15 20:44:27 -0700] [STDERR] stderr: at com.twitter.heron.scheduler.SchedulerMain.runScheduler(SchedulerMain.java:382)
[2018-04-15 20:44:27 -0700] [STDERR] stderr: at com.twitter.heron.scheduler.SchedulerMain.main(SchedulerMain.java:218) 我该怎么做才能解决这个问题?谢谢你的帮忙!
发布于 2018-04-17 21:20:32
出现异常的直接原因是您的自定义调度程序没有与heron版本一起打包。
要使您的自定义调度程序正常工作,可以按照以下步骤操作:
heron/schedulers/src/java/com/twitter/heron/scheduler中BUILD文件heron/schedulers/src/javatools/rules/heron_client.bzl和tools/rules/heron_core.bzl上添加自定义调度程序构建目标下面是本地调度程序如何打包的示例:https://github.com/apache/incubator-heron/search?utf8=%E2%9C%93&q=heron-local-scheduler&type=
发布于 2018-04-12 00:22:33
您可以为Heron开发自定义调度程序--请遵循代码库中调度程序的任何实现。
https://stackoverflow.com/questions/49475563
复制相似问题