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.normalizer;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.hbase.HRegionInfo;
24 import org.apache.hadoop.hbase.classification.InterfaceAudience;
25 import org.apache.hadoop.hbase.client.Admin;
26
27 import java.io.IOException;
28 import java.util.Arrays;
29
30
31
32
33 @InterfaceAudience.Private
34 public class SplitNormalizationPlan implements NormalizationPlan {
35 private static final Log LOG = LogFactory.getLog(SplitNormalizationPlan.class.getName());
36
37 private HRegionInfo regionInfo;
38 private byte[] splitPoint;
39
40 public SplitNormalizationPlan(HRegionInfo regionInfo, byte[] splitPoint) {
41 this.regionInfo = regionInfo;
42 this.splitPoint = splitPoint;
43 }
44
45 @Override
46 public PlanType getType() {
47 return PlanType.SPLIT;
48 }
49
50 public HRegionInfo getRegionInfo() {
51 return regionInfo;
52 }
53
54 public void setRegionInfo(HRegionInfo regionInfo) {
55 this.regionInfo = regionInfo;
56 }
57
58 public byte[] getSplitPoint() {
59 return splitPoint;
60 }
61
62 public void setSplitPoint(byte[] splitPoint) {
63 this.splitPoint = splitPoint;
64 }
65
66 @Override
67 public String toString() {
68 return "SplitNormalizationPlan{" +
69 "regionInfo=" + regionInfo +
70 ", splitPoint=" + Arrays.toString(splitPoint) +
71 '}';
72 }
73
74
75
76
77 @Override
78 public void execute(Admin admin) {
79 LOG.info("Executing splitting normalization plan: " + this);
80 try {
81 admin.splitRegion(regionInfo.getRegionName());
82 } catch (IOException ex) {
83 LOG.error("Error during region split: ", ex);
84 }
85 }
86 }