<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
<span class="sourceLineNo">009</span> *<a name="line.9"></a>
<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
<span class="sourceLineNo">011</span> *<a name="line.11"></a>
<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
<span class="sourceLineNo">017</span> */<a name="line.17"></a>
<span class="sourceLineNo">018</span><a name="line.18"></a>
<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase;<a name="line.19"></a>
<span class="sourceLineNo">020</span><a name="line.20"></a>
<span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
<span class="sourceLineNo">022</span>import org.apache.hadoop.conf.Configuration;<a name="line.22"></a>
<span class="sourceLineNo">023</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.23"></a>
<span class="sourceLineNo">024</span><a name="line.24"></a>
<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
<span class="sourceLineNo">026</span> * Facility for &lt;strong&gt;integration/system&lt;/strong&gt; tests. This extends {@link HBaseTestingUtility}<a name="line.26"></a>
<span class="sourceLineNo">027</span> * and adds-in the functionality needed by integration and system tests. This class understands<a name="line.27"></a>
<span class="sourceLineNo">028</span> * distributed and pseudo-distributed/local cluster deployments, and abstracts those from the tests<a name="line.28"></a>
<span class="sourceLineNo">029</span> * in this module.<a name="line.29"></a>
<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
<span class="sourceLineNo">031</span> * IntegrationTestingUtility is constructed and used by the integration tests, but the tests<a name="line.31"></a>
<span class="sourceLineNo">032</span> * themselves should not assume a particular deployment. They can rely on the methods in this<a name="line.32"></a>
<span class="sourceLineNo">033</span> * class and HBaseCluster. Before the testing begins, the test should initialize the cluster by<a name="line.33"></a>
<span class="sourceLineNo">034</span> * calling {@link #initializeCluster(int)}.<a name="line.34"></a>
<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
<span class="sourceLineNo">036</span> * The cluster that is used defaults to a mini cluster, but it can be forced to use a distributed<a name="line.36"></a>
<span class="sourceLineNo">037</span> * cluster by calling {@link #setUseDistributedCluster(Configuration)}. This method is invoked by<a name="line.37"></a>
<span class="sourceLineNo">038</span> * test drivers (maven, IntegrationTestsDriver, etc) before initializing the cluster<a name="line.38"></a>
<span class="sourceLineNo">039</span> * via {@link #initializeCluster(int)}. Individual tests should not directly call<a name="line.39"></a>
<span class="sourceLineNo">040</span> * {@link #setUseDistributedCluster(Configuration)}.<a name="line.40"></a>
<span class="sourceLineNo">041</span> */<a name="line.41"></a>
<span class="sourceLineNo">042</span>public class IntegrationTestingUtility extends HBaseTestingUtility {<a name="line.42"></a>
<span class="sourceLineNo">043</span><a name="line.43"></a>
<span class="sourceLineNo">044</span>  public IntegrationTestingUtility() {<a name="line.44"></a>
<span class="sourceLineNo">045</span>    this(HBaseConfiguration.create());<a name="line.45"></a>
<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
<span class="sourceLineNo">047</span><a name="line.47"></a>
<span class="sourceLineNo">048</span>  public IntegrationTestingUtility(Configuration conf) {<a name="line.48"></a>
<span class="sourceLineNo">049</span>    super(conf);<a name="line.49"></a>
<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
<span class="sourceLineNo">051</span><a name="line.51"></a>
<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
<span class="sourceLineNo">053</span>   * Configuration that controls whether this utility assumes a running/deployed cluster.<a name="line.53"></a>
<span class="sourceLineNo">054</span>   * This is different than "hbase.cluster.distributed" since that parameter indicates whether the<a name="line.54"></a>
<span class="sourceLineNo">055</span>   * cluster is in an actual distributed environment, while this shows that there is a<a name="line.55"></a>
<span class="sourceLineNo">056</span>   * deployed (distributed or pseudo-distributed) cluster running, and we do not need to<a name="line.56"></a>
<span class="sourceLineNo">057</span>   * start a mini-cluster for tests.<a name="line.57"></a>
<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
<span class="sourceLineNo">059</span>  public static final String IS_DISTRIBUTED_CLUSTER = "hbase.test.cluster.distributed";<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
<span class="sourceLineNo">061</span>  /** Config for pluggable hbase cluster manager */<a name="line.61"></a>
<span class="sourceLineNo">062</span>  private static final String HBASE_CLUSTER_MANAGER_CLASS = "hbase.it.clustermanager.class";<a name="line.62"></a>
<span class="sourceLineNo">063</span>  private static final Class&lt;? extends ClusterManager&gt; DEFAULT_HBASE_CLUSTER_MANAGER_CLASS =<a name="line.63"></a>
<span class="sourceLineNo">064</span>    HBaseClusterManager.class;<a name="line.64"></a>
<span class="sourceLineNo">065</span><a name="line.65"></a>
<span class="sourceLineNo">066</span>  /**<a name="line.66"></a>
<span class="sourceLineNo">067</span>   * Initializes the state of the cluster. It starts a new in-process mini cluster, OR<a name="line.67"></a>
<span class="sourceLineNo">068</span>   * if we are given an already deployed distributed cluster it initializes the state.<a name="line.68"></a>
<span class="sourceLineNo">069</span>   * @param numSlaves Number of slaves to start up if we are booting a mini cluster. Otherwise<a name="line.69"></a>
<span class="sourceLineNo">070</span>   * we check whether this many nodes are available and throw an exception if not.<a name="line.70"></a>
<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
<span class="sourceLineNo">072</span>  public void initializeCluster(int numSlaves) throws Exception {<a name="line.72"></a>
<span class="sourceLineNo">073</span>    if (isDistributedCluster()) {<a name="line.73"></a>
<span class="sourceLineNo">074</span>      createDistributedHBaseCluster();<a name="line.74"></a>
<span class="sourceLineNo">075</span>      checkNodeCount(numSlaves);<a name="line.75"></a>
<span class="sourceLineNo">076</span>    } else {<a name="line.76"></a>
<span class="sourceLineNo">077</span>      startMiniCluster(numSlaves);<a name="line.77"></a>
<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
<span class="sourceLineNo">080</span><a name="line.80"></a>
<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
<span class="sourceLineNo">082</span>   * Checks whether we have more than numSlaves nodes. Throws an<a name="line.82"></a>
<span class="sourceLineNo">083</span>   * exception otherwise.<a name="line.83"></a>
<span class="sourceLineNo">084</span>   */<a name="line.84"></a>
<span class="sourceLineNo">085</span>  public void checkNodeCount(int numSlaves) throws Exception {<a name="line.85"></a>
<span class="sourceLineNo">086</span>    HBaseCluster cluster = getHBaseClusterInterface();<a name="line.86"></a>
<span class="sourceLineNo">087</span>    if (cluster.getClusterMetrics().getLiveServerMetrics().size() &lt; numSlaves) {<a name="line.87"></a>
<span class="sourceLineNo">088</span>      throw new Exception("Cluster does not have enough nodes:" + numSlaves);<a name="line.88"></a>
<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
<span class="sourceLineNo">091</span><a name="line.91"></a>
<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
<span class="sourceLineNo">093</span>   * Restores the cluster to the initial state if it is a distributed cluster, otherwise, shutdowns the<a name="line.93"></a>
<span class="sourceLineNo">094</span>   * mini cluster.<a name="line.94"></a>
<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
<span class="sourceLineNo">096</span>  public void restoreCluster() throws IOException {<a name="line.96"></a>
<span class="sourceLineNo">097</span>    if (isDistributedCluster()) {<a name="line.97"></a>
<span class="sourceLineNo">098</span>      getHBaseClusterInterface().restoreInitialStatus();<a name="line.98"></a>
<span class="sourceLineNo">099</span>    } else {<a name="line.99"></a>
<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
<span class="sourceLineNo">101</span>        shutdownMiniCluster();<a name="line.101"></a>
<span class="sourceLineNo">102</span>      } catch (Exception e) {<a name="line.102"></a>
<span class="sourceLineNo">103</span>        // re-wrap into IOException<a name="line.103"></a>
<span class="sourceLineNo">104</span>        throw new IOException(e);<a name="line.104"></a>
<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
<span class="sourceLineNo">108</span><a name="line.108"></a>
<span class="sourceLineNo">109</span>  /**<a name="line.109"></a>
<span class="sourceLineNo">110</span>   * Sets the configuration property to use a distributed cluster for the integration tests. Test drivers<a name="line.110"></a>
<span class="sourceLineNo">111</span>   * should use this to enforce cluster deployment.<a name="line.111"></a>
<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
<span class="sourceLineNo">113</span>  public static void setUseDistributedCluster(Configuration conf) {<a name="line.113"></a>
<span class="sourceLineNo">114</span>    conf.setBoolean(IS_DISTRIBUTED_CLUSTER, true);<a name="line.114"></a>
<span class="sourceLineNo">115</span>    System.setProperty(IS_DISTRIBUTED_CLUSTER, "true");<a name="line.115"></a>
<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
<span class="sourceLineNo">117</span><a name="line.117"></a>
<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
<span class="sourceLineNo">119</span>   * @return whether we are interacting with a distributed cluster as opposed to and in-process mini<a name="line.119"></a>
<span class="sourceLineNo">120</span>   * cluster or a local cluster.<a name="line.120"></a>
<span class="sourceLineNo">121</span>   * @see IntegrationTestingUtility#setUseDistributedCluster(Configuration)<a name="line.121"></a>
<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
<span class="sourceLineNo">123</span>  public boolean isDistributedCluster() {<a name="line.123"></a>
<span class="sourceLineNo">124</span>    Configuration conf = getConfiguration();<a name="line.124"></a>
<span class="sourceLineNo">125</span>    boolean isDistributedCluster = false;<a name="line.125"></a>
<span class="sourceLineNo">126</span>    isDistributedCluster = Boolean.parseBoolean(System.getProperty(IS_DISTRIBUTED_CLUSTER, "false"));<a name="line.126"></a>
<span class="sourceLineNo">127</span>    if (!isDistributedCluster) {<a name="line.127"></a>
<span class="sourceLineNo">128</span>      isDistributedCluster = conf.getBoolean(IS_DISTRIBUTED_CLUSTER, false);<a name="line.128"></a>
<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
<span class="sourceLineNo">130</span>    return isDistributedCluster;<a name="line.130"></a>
<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
<span class="sourceLineNo">132</span><a name="line.132"></a>
<span class="sourceLineNo">133</span>  public void createDistributedHBaseCluster() throws IOException {<a name="line.133"></a>
<span class="sourceLineNo">134</span>    //if it is a distributed HBase cluster, use the conf provided by classpath<a name="line.134"></a>
<span class="sourceLineNo">135</span>    //to set hbase dir and fs.defaultFS.<a name="line.135"></a>
<span class="sourceLineNo">136</span>    //Since when the super class HBaseTestingUtility initializing, it will<a name="line.136"></a>
<span class="sourceLineNo">137</span>    //change hbase.rootdir to a local test dir.<a name="line.137"></a>
<span class="sourceLineNo">138</span>    //we use "original.defaultFS" and "original.hbase.dir" to restore them.<a name="line.138"></a>
<span class="sourceLineNo">139</span>    Configuration conf = getConfiguration();<a name="line.139"></a>
<span class="sourceLineNo">140</span>    if (conf.get("original.defaultFS") != null) {<a name="line.140"></a>
<span class="sourceLineNo">141</span>      conf.set("fs.defaultFS", conf.get("original.defaultFS"));<a name="line.141"></a>
<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
<span class="sourceLineNo">143</span>    if (conf.get("original.hbase.dir") != null) {<a name="line.143"></a>
<span class="sourceLineNo">144</span>      conf.set(HConstants.HBASE_DIR, conf.get("original.hbase.dir"));<a name="line.144"></a>
<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
<span class="sourceLineNo">146</span>    LOG.debug("Setting {} to {} since it is a distributed cluster",<a name="line.146"></a>
<span class="sourceLineNo">147</span>        HConstants.HBASE_DIR, conf.get(HConstants.HBASE_DIR));<a name="line.147"></a>
<span class="sourceLineNo">148</span>    Class&lt;? extends ClusterManager&gt; clusterManagerClass = conf.getClass(HBASE_CLUSTER_MANAGER_CLASS,<a name="line.148"></a>
<span class="sourceLineNo">149</span>      DEFAULT_HBASE_CLUSTER_MANAGER_CLASS, ClusterManager.class);<a name="line.149"></a>
<span class="sourceLineNo">150</span>    LOG.info("Instantiating {}", clusterManagerClass.getName());<a name="line.150"></a>
<span class="sourceLineNo">151</span>    ClusterManager clusterManager = ReflectionUtils.newInstance(<a name="line.151"></a>
<span class="sourceLineNo">152</span>      clusterManagerClass, conf);<a name="line.152"></a>
<span class="sourceLineNo">153</span>    setHBaseCluster(new DistributedHBaseCluster(conf, clusterManager));<a name="line.153"></a>
<span class="sourceLineNo">154</span>    getAdmin();<a name="line.154"></a>
<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
<span class="sourceLineNo">156</span><a name="line.156"></a>
<span class="sourceLineNo">157</span>}<a name="line.157"></a>




























































</pre>
</div>
</body>
</html>
