Beispiel #1
0
        public virtual void TestSwebHdfsCustomUriPortWithCustomDefaultPorts()
        {
            URI uri = URI.Create("swebhdfs://localhost:789");
            SWebHdfsFileSystem fs = (SWebHdfsFileSystem)FileSystem.Get(uri, conf);

            NUnit.Framework.Assert.AreEqual(456, fs.GetDefaultPort());
            NUnit.Framework.Assert.AreEqual(uri, fs.GetUri());
            NUnit.Framework.Assert.AreEqual("127.0.0.1:789", fs.GetCanonicalServiceName());
        }
Beispiel #2
0
        public virtual void TestLazyTokenFetchForSWebhdfs()
        {
            // for any(Token.class)
            MiniDFSCluster     cluster = null;
            SWebHdfsFileSystem fs      = null;

            try
            {
                Configuration clusterConf = new HdfsConfiguration(conf);
                SecurityUtil.SetAuthenticationMethod(UserGroupInformation.AuthenticationMethod.Simple
                                                     , clusterConf);
                clusterConf.SetBoolean(DFSConfigKeys.DfsNamenodeDelegationTokenAlwaysUseKey, true
                                       );
                string Basedir = Runtime.GetProperty("test.build.dir", "target/test-dir") + "/" +
                                 typeof(TestWebHdfsTokens).Name;
                string keystoresDir;
                string sslConfDir;
                clusterConf.SetBoolean(DFSConfigKeys.DfsWebhdfsEnabledKey, true);
                clusterConf.Set(DFSConfigKeys.DfsHttpPolicyKey, HttpConfig.Policy.HttpsOnly.ToString
                                    ());
                clusterConf.Set(DFSConfigKeys.DfsNamenodeHttpsAddressKey, "localhost:0");
                clusterConf.Set(DFSConfigKeys.DfsDatanodeHttpsAddressKey, "localhost:0");
                FilePath @base = new FilePath(Basedir);
                FileUtil.FullyDelete(@base);
                @base.Mkdirs();
                keystoresDir = new FilePath(Basedir).GetAbsolutePath();
                sslConfDir   = KeyStoreTestUtil.GetClasspathDir(typeof(TestWebHdfsTokens));
                KeyStoreTestUtil.SetupSSLConfig(keystoresDir, sslConfDir, clusterConf, false);
                // trick the NN into thinking security is enabled w/o it trying
                // to login from a keytab
                UserGroupInformation.SetConfiguration(clusterConf);
                cluster = new MiniDFSCluster.Builder(clusterConf).NumDataNodes(1).Build();
                cluster.WaitActive();
                IPEndPoint addr   = cluster.GetNameNode().GetHttpsAddress();
                string     nnAddr = NetUtils.GetHostPortString(addr);
                clusterConf.Set(DFSConfigKeys.DfsNamenodeHttpsAddressKey, nnAddr);
                SecurityUtil.SetAuthenticationMethod(UserGroupInformation.AuthenticationMethod.Kerberos
                                                     , clusterConf);
                UserGroupInformation.SetConfiguration(clusterConf);
                uri = DFSUtil.CreateUri("swebhdfs", cluster.GetNameNode().GetHttpsAddress());
                ValidateLazyTokenFetch(clusterConf);
            }
            finally
            {
                IOUtils.Cleanup(null, fs);
                if (cluster != null)
                {
                    cluster.Shutdown();
                }
            }
        }