元数据调度程序的 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 个空格。
我尝试使用元标记在 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 个空格。