|
@@ -18,17 +18,20 @@
|
|
|
|
|
|
package org.apache.hadoop.mapreduce;
|
|
|
|
|
|
-import static org.junit.Assert.assertTrue;
|
|
|
-import static org.junit.Assert.fail;
|
|
|
-
|
|
|
import java.io.IOException;
|
|
|
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
+import org.apache.hadoop.fs.FileSystem;
|
|
|
+import org.apache.hadoop.fs.UnsupportedFileSystemException;
|
|
|
import org.apache.hadoop.mapred.LocalJobRunner;
|
|
|
import org.apache.hadoop.mapred.YARNRunner;
|
|
|
import org.apache.hadoop.mapreduce.server.jobtracker.JTConfig;
|
|
|
+import org.apache.hadoop.util.StringUtils;
|
|
|
import org.junit.Test;
|
|
|
|
|
|
+import static org.junit.Assert.assertTrue;
|
|
|
+import static org.junit.Assert.fail;
|
|
|
+
|
|
|
public class TestClientProtocolProviderImpls {
|
|
|
|
|
|
@Test
|
|
@@ -76,4 +79,21 @@ public class TestClientProtocolProviderImpls {
|
|
|
"Cannot initialize Cluster. Please check"));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testClusterExceptionRootCause() throws Exception {
|
|
|
+ final Configuration conf = new Configuration();
|
|
|
+ conf.set(MRConfig.FRAMEWORK_NAME, MRConfig.YARN_FRAMEWORK_NAME);
|
|
|
+ conf.set(FileSystem.FS_DEFAULT_NAME_KEY, "nosuchfs:///");
|
|
|
+ conf.set(JTConfig.JT_IPC_ADDRESS, "local");
|
|
|
+ try {
|
|
|
+ new Cluster(conf);
|
|
|
+ fail("Cluster init should fail because of non-existing FileSystem");
|
|
|
+ } catch (IOException ioEx) {
|
|
|
+ final String stackTrace = StringUtils.stringifyException(ioEx);
|
|
|
+ assertTrue("No root cause detected",
|
|
|
+ stackTrace.contains(UnsupportedFileSystemException.class.getName())
|
|
|
+ && stackTrace.contains("nosuchfs"));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|