1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.chaos.actions;
20
21 import org.apache.hadoop.hbase.ClusterStatus;
22 import org.apache.hadoop.hbase.ServerName;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26
27
28
29 public class RestartRsHoldingMetaAction extends RestartActionBaseAction {
30 private static final Logger LOG =
31 LoggerFactory.getLogger(RestartRsHoldingMetaAction.class);
32
33 public RestartRsHoldingMetaAction(long sleepTime) {
34 super(sleepTime);
35 }
36
37 @Override protected Logger getLogger() {
38 return LOG;
39 }
40
41 @Override
42 public void perform() throws Exception {
43 getLogger().info("Performing action: Restart region server holding META");
44 ServerName server = cluster.getServerHoldingMeta();
45 if (server == null) {
46 getLogger().warn("No server is holding hbase:meta right now.");
47 return;
48 }
49 ClusterStatus clusterStatus = cluster.getClusterStatus();
50 if (server.equals(clusterStatus.getMaster())) {
51
52 restartMaster(server, sleepTime);
53 } else {
54 restartRs(server, sleepTime);
55 }
56 }
57 }