0

我尝试使用元标记在 Apache Storm 中编写调度程序,以将特定任务调度给特定的主管。我在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;
     }

}

我得到的唯一消息是“主管元是:null”。我试图改变几件事,但我无法检索我的主管元数据。它总是为空。有什么想法吗?

先感谢您。妮可

4

1 回答 1

0

在 supervisor 的storm.yaml 文件中的“name”之前应该添加 3 个空格。

于 2020-09-03T07:27:53.153 回答