我尝试在apachestorm中编写一个调度器,使用meta标记将特定任务调度给特定的主管。我在supervisor 1的storm.yaml文件中使用了以下代码:
supervisor.scheduler.meta:
name: 1
在运行以下部分代码时:
Collection<SupervisorDetails> supervisors = cluster.getSupervisors().values();
SupervisorDetails specialSupervisor = null;
for (SupervisorDetails supervisor : supervisors) {
@SuppressWarnings("unchecked")
Map<String, Object> meta = (Map<String, Object>) supervisor.getSchedulerMeta();
System.out.println("Supervisor meta is: " + meta);
System.out.println("Supervisor's name is: " + meta.get("name"));
Integer gid = (Integer)meta.get("name");
if (gid==1) {
specialSupervisor = supervisor;
System.out.println("Your supervisor is found");
break;
}
}
我得到的唯一信息是“supervisor meta is:null”。我试图改变一些事情,但我无法找回我的超能力。它总是为空。有什么想法吗?
先谢谢你。妮可
1条答案
按热度按时间qlfbtfca1#
在主管的storm.yaml文件的“name”之前应添加3个空格。