HBASE-12563 After Starting up mini hbase cluster, Real Configuration of Cluster never set to HBaseTestingUtility (Talat UYARER)

This commit is contained in:
stack 2014-11-26 07:59:26 -08:00
parent 1350055fcd
commit 9be143691c
2 changed files with 33 additions and 10 deletions

View File

@ -917,6 +917,10 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
Configuration c = new Configuration(this.conf);
this.hbaseCluster =
new MiniHBaseCluster(c, numMasters, numSlaves, masterClass, regionserverClass);
// Cluster confguration should set HbaseTestingUtility Conf
MiniHBaseCluster miniHBaseCluster = (MiniHBaseCluster) this.hbaseCluster;
this.conf = miniHBaseCluster.getMaster().getConfiguration();
// Don't leave here till we've done a successful scan of the hbase:meta
Table t = new HTable(c, TableName.META_TABLE_NAME);
ResultScanner s = t.getScanner(new Scan());
@ -928,7 +932,7 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
getHBaseAdmin(); // create immediately the hbaseAdmin
LOG.info("Minicluster is up");
return (MiniHBaseCluster)this.hbaseCluster;
return miniHBaseCluster;
}
/**

View File

@ -18,6 +18,7 @@
*/
package org.apache.hadoop.hbase;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.BufferedInputStream;
@ -46,11 +47,10 @@ public class TestInfoServers {
@BeforeClass
public static void beforeClass() throws Exception {
// The info servers do not run in tests by default.
// Set them to ephemeral ports so they will start
// The info servers do not run in tests by default.
// Set them to ephemeral ports so they will start
UTIL.getConfiguration().setInt(HConstants.MASTER_INFO_PORT, 0);
UTIL.getConfiguration().setInt(HConstants.REGIONSERVER_INFO_PORT, 0);
//We need to make sure that the server can be started as read only.
UTIL.getConfiguration().setBoolean("hbase.master.ui.readonly", true);
UTIL.startMiniCluster();
@ -61,6 +61,25 @@ public class TestInfoServers {
UTIL.shutdownMiniCluster();
}
/**
* Test for checking master info port of cluster whether same with the port of
* TestHBaseTestingUtility's getConfiguration .
*
* @throws Exception
*/
@Test
public void testMasterInfoServerPort() throws Exception {
String confPort = UTIL.getConfiguration().get(HConstants.MASTER_INFO_PORT);
String masterPort =
UTIL.getHBaseCluster().getMaster().getConfiguration().get(HConstants.MASTER_INFO_PORT);
String regionPort =
UTIL.getHBaseCluster().getRegionServerThreads().get(0).getRegionServer().getConfiguration()
.get(HConstants.MASTER_INFO_PORT);
assertEquals(confPort, masterPort);
assertEquals(confPort, regionPort);
}
/**
* @throws Exception
*/
@ -68,11 +87,11 @@ public class TestInfoServers {
public void testInfoServersRedirect() throws Exception {
// give the cluster time to start up
new HTable(UTIL.getConfiguration(), TableName.META_TABLE_NAME).close();
int port = UTIL.getHBaseCluster().getMaster().getInfoServer().getPort();
String port = UTIL.getConfiguration().get(HConstants.MASTER_INFO_PORT);
assertContainsContent(new URL("http://localhost:" + port +
"/index.html"), "master-status");
port = UTIL.getHBaseCluster().getRegionServerThreads().get(0).getRegionServer().
getInfoServer().getPort();
getConfiguration().get(HConstants.REGIONSERVER_INFO_PORT);
assertContainsContent(new URL("http://localhost:" + port +
"/index.html"), "rs-status");
}
@ -88,11 +107,11 @@ public class TestInfoServers {
public void testInfoServersStatusPages() throws Exception {
// give the cluster time to start up
new HTable(UTIL.getConfiguration(), TableName.META_TABLE_NAME).close();
int port = UTIL.getHBaseCluster().getMaster().getInfoServer().getPort();
String port = UTIL.getConfiguration().get(HConstants.MASTER_INFO_PORT);
assertContainsContent(new URL("http://localhost:" + port +
"/master-status"), "meta");
port = UTIL.getHBaseCluster().getRegionServerThreads().get(0).getRegionServer().
getInfoServer().getPort();
getConfiguration().get(HConstants.REGIONSERVER_INFO_PORT);
assertContainsContent(new URL("http://localhost:" + port +
"/rs-status"), "meta");
}
@ -103,7 +122,7 @@ public class TestInfoServers {
byte[] cf = Bytes.toBytes("d");
UTIL.createTable(tableName, cf);
new HTable(UTIL.getConfiguration(), tableName).close();
int port = UTIL.getHBaseCluster().getMaster().getInfoServer().getPort();
String port = UTIL.getConfiguration().get(HConstants.MASTER_INFO_PORT);
assertDoesNotContainContent(
new URL("http://localhost:" + port + "/table.jsp?name=" + tableName + "&action=split&key="),
"Table action request accepted");