1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.master.balancer;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.hbase.classification.InterfaceAudience;
24 import org.apache.hadoop.hbase.Chore;
25 import org.apache.hadoop.hbase.master.HMaster;
26 import org.apache.hadoop.hbase.master.LoadBalancer;
27
28 import java.io.InterruptedIOException;
29
30
31
32
33 @InterfaceAudience.Private
34 public class ClusterStatusChore extends Chore {
35 private static final Log LOG = LogFactory.getLog(ClusterStatusChore.class);
36 private final HMaster master;
37 private final LoadBalancer balancer;
38
39 public ClusterStatusChore(HMaster master, LoadBalancer balancer) {
40 super(master.getServerName() + "-ClusterStatusChore",
41 master.getConfiguration().getInt("hbase.balancer.statusPeriod", 60000),
42 master);
43 this.master = master;
44 this.balancer = balancer;
45 }
46
47 @Override
48 protected void chore() {
49 try {
50 balancer.setClusterStatus(master.getClusterStatus());
51 } catch (InterruptedIOException e) {
52 LOG.warn("Ignoring interruption", e);
53 }
54 }
55 }