def run(self): """ 未收到终止信号前,循环向zookeeper节点写入节点状态 :return: """ while not self.end: slave = eval(str(self.zk.get("/jetsearch/slaves/" + self.slave_id)[0])) slave['heartbeat'] = Metric.get_heartbeat() slave['task_status'] = self.status self.zk.set("/jetsearch/slaves/" + self.slave_id, str(slave)) time.sleep(1)
def _register(self): """ 向master注册slave节点,存入slave状态信息 """ if self.zk.exists("/jetsearch/slaves/" + self.id): self.id = self._generate_id() slave = { "id": self.id, "type": self.type, "host": Metric.get_host(), "addr": Metric.get_ip(), "heartbeat": Metric.get_heartbeat() } self.zk.create("/jetsearch/slaves/" + self.id, str(slave))