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 public HRegionInfo getRegionInfo() {
46 return regionInfo;
47 }
48
49 public void setRegionInfo(HRegionInfo regionInfo) {
50 this.regionInfo = regionInfo;
51 }
52
53 public byte[] getSplitPoint() {
54 return splitPoint;
55 }
56
57 public void setSplitPoint(byte[] splitPoint) {
58 this.splitPoint = splitPoint;
59 }
60
61 @Override
62 public String toString() {
63 return "SplitNormalizationPlan{" +
64 "regionInfo=" + regionInfo +
65 ", splitPoint=" + Arrays.toString(splitPoint) +
66 '}';
67 }
68
69
70
71
72 @Override
73 public void execute(Admin admin) {
74 LOG.info("Executing splitting normalization plan: " + this);
75 try {
76 admin.splitRegion(regionInfo.getRegionName());
77 } catch (IOException ex) {
78 LOG.error("Error during region split: ", ex);
79 }
80 }
81 }