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.ServerName;
22 import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 public class RestartRandomRsExceptMetaAction extends RestartRandomRsAction {
27 private static final Logger LOG = LoggerFactory.getLogger(RestartRandomRsExceptMetaAction.class);
28
29 public RestartRandomRsExceptMetaAction(long sleepTime) {
30 super(sleepTime);
31 }
32
33 @Override protected Logger getLogger() {
34 return LOG;
35 }
36
37 @Override
38 public void perform() throws Exception {
39 int tries = 10;
40
41 while (tries-- > 0 && getCurrentServers().length > 1) {
42 ServerName server = PolicyBasedChaosMonkey.selectRandomItem(getCurrentServers());
43 ServerName metaServer = cluster.getServerHoldingMeta();
44 if (server != null && !server.equals(metaServer)) {
45 restartRs(server, sleepTime);
46 break;
47 }
48 }
49 }
50 }