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.factories;
20
21 import org.apache.hadoop.hbase.chaos.actions.Action;
22 import org.apache.hadoop.hbase.chaos.actions.DumpClusterStatusAction;
23 import org.apache.hadoop.hbase.chaos.actions.ForceBalancerAction;
24 import org.apache.hadoop.hbase.chaos.actions.RestartActiveMasterAction;
25 import org.apache.hadoop.hbase.chaos.actions.RestartRandomRsExceptMetaAction;
26 import org.apache.hadoop.hbase.chaos.actions.RollingBatchRestartRsExceptMetaAction;
27 import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
28 import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
29 import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
30 import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
31 import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
32
33
34
35
36
37 public class ServerKillingMonkeyFactory extends MonkeyFactory {
38
39 @Override
40 public ChaosMonkey build() {
41
42
43 Action[] actions1 = new Action[] {
44 new RestartRandomRsExceptMetaAction(60000),
45 new RestartActiveMasterAction(5000),
46 new RollingBatchRestartRsExceptMetaAction(5000, 1.0f, 2),
47 new ForceBalancerAction()
48 };
49
50
51 Action[] actions2 = new Action[] {
52 new DumpClusterStatusAction()
53 };
54
55 return new PolicyBasedChaosMonkey(util,
56 new CompositeSequentialPolicy(
57 new DoActionsOncePolicy(60 * 1000, actions1),
58 new PeriodicRandomActionPolicy(60 * 1000, actions1)),
59 new PeriodicRandomActionPolicy(60 * 1000, actions2));
60 }
61 }