HBASE-16375 Mapreduce mini cluster using HBaseTestingUtility not setting correct resourcemanager and jobhistory webapp address of MapReduceTestingShim

Signed-off-by: Andrew Purtell <apurtell@apache.org>
Amending-Author: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
Loknath Priyatham Teja Singamsetty 2016-09-01 21:16:26 +05:30 committed by Andrew Purtell
parent a1cd601ad7
commit b839d04d8e
2 changed files with 51 additions and 5 deletions

View File

@ -2529,6 +2529,16 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
if (schedulerAddress != null) {
conf.set("yarn.resourcemanager.scheduler.address", schedulerAddress);
}
String mrJobHistoryWebappAddress =
jobConf.get("mapreduce.jobhistory.webapp.address");
if (mrJobHistoryWebappAddress != null) {
conf.set("mapreduce.jobhistory.webapp.address", mrJobHistoryWebappAddress);
}
String yarnRMWebappAddress =
jobConf.get("yarn.resourcemanager.webapp.address");
if (yarnRMWebappAddress != null) {
conf.set("yarn.resourcemanager.webapp.address", yarnRMWebappAddress);
}
}
/**

View File

@ -24,6 +24,14 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@ -34,22 +42,18 @@ import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.http.ssl.KeyStoreTestUtil;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hbase.http.ssl.KeyStoreTestUtil;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import java.io.File;
import java.util.List;
import java.util.Random;
/**
* Test our testing utility class
*/
@ -443,4 +447,36 @@ public class TestHBaseTestingUtility {
assertEquals(nonDefaultRegionServerPort
, htu.getConfiguration().getInt(HConstants.REGIONSERVER_PORT, 0));
}
@Test public void testMRYarnConfigsPopulation() throws IOException {
Map<String, String> dummyProps = new HashMap<>();
dummyProps.put("mapreduce.jobtracker.address", "dummyhost:11234");
dummyProps.put("yarn.resourcemanager.address", "dummyhost:11235");
dummyProps.put("mapreduce.jobhistory.address", "dummyhost:11236");
dummyProps.put("yarn.resourcemanager.scheduler.address", "dummyhost:11237");
dummyProps.put("mapreduce.jobhistory.webapp.address", "dummyhost:11238");
dummyProps.put("yarn.resourcemanager.webapp.address", "dummyhost:11239");
HBaseTestingUtility hbt = new HBaseTestingUtility();
// populate the mr props to the Configuration instance
for (Entry<String, String> entry : dummyProps.entrySet()) {
hbt.getConfiguration().set(entry.getKey(), entry.getValue());
}
for (Entry<String,String> entry : dummyProps.entrySet()) {
assertTrue("The Configuration for key " + entry.getKey() +" and value: " + entry.getValue() +
" is not populated correctly", hbt.getConfiguration().get(entry.getKey()).equals(entry.getValue()));
}
hbt.startMiniMapReduceCluster();
// Confirm that MiniMapReduceCluster overwrites the mr properties and updates the Configuration
for (Entry<String,String> entry : dummyProps.entrySet()) {
assertFalse("The MR prop: " + entry.getValue() + " is not overwritten when map reduce mini"+
"cluster is started", hbt.getConfiguration().get(entry.getKey()).equals(entry.getValue()));
}
hbt.shutdownMiniMapReduceCluster();
}
}