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