元数据调度程序的 Apache Storm 问题

Apache Storm problem with metadata scheduler

我尝试使用元标记在 Apache Storm 中编写一个调度程序,以将特定任务安排给特定主管。我在主管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”。我试图改变几件事,但我无法检索我的主管元数据。它总是为空。有什么想法吗?

提前谢谢你。 妮可

主管 storm.yaml 文件中的“姓名”前应添加 3 个空格。