HADOOP-8408. MR doesn't work with a non-default ViewFS mount table and security enabled. Contributed by Aaron T. Myers
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1339971 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
297cbcca27
commit
b1d3b518c2
|
@ -40,6 +40,9 @@ Release 2.0.1-alpha - UNRELEASED
|
||||||
|
|
||||||
HADOOP-8287. etc/hadoop is missing hadoop-env.sh (eli)
|
HADOOP-8287. etc/hadoop is missing hadoop-env.sh (eli)
|
||||||
|
|
||||||
|
HADOOP-8408. MR doesn't work with a non-default ViewFS mount table
|
||||||
|
and security enabled. (atm via eli)
|
||||||
|
|
||||||
Release 2.0.0-alpha - UNRELEASED
|
Release 2.0.0-alpha - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -234,6 +234,11 @@ public class ViewFileSystem extends FileSystem {
|
||||||
return res.isInternalDir() ? null : res.targetFileSystem.getHomeDirectory();
|
return res.isInternalDir() ? null : res.targetFileSystem.getHomeDirectory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCanonicalServiceName() {
|
||||||
|
return getUri().getHost();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public URI getUri() {
|
public URI getUri() {
|
||||||
return myUri;
|
return myUri;
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.hadoop.fs.viewfs;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
import org.apache.hadoop.fs.FsConstants;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test ViewFileSystem's support for having delegation tokens fetched and cached
|
||||||
|
* for the file system.
|
||||||
|
*/
|
||||||
|
public class TestViewFileSystemDelegationTokenSupport {
|
||||||
|
|
||||||
|
private static final String MOUNT_TABLE_NAME = "vfs-cluster";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that a canonical service name can be determined for ViewFileSystem
|
||||||
|
* instances configured with a non-default mount table name.
|
||||||
|
*
|
||||||
|
* Regression test for HADOOP-8408.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testGetCanonicalServiceNameWithNonDefaultMountTable()
|
||||||
|
throws URISyntaxException, IOException {
|
||||||
|
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
ConfigUtil.addLink(conf, MOUNT_TABLE_NAME, "/user", new URI("file:///"));
|
||||||
|
|
||||||
|
FileSystem viewFs = FileSystem.get(new URI(FsConstants.VIEWFS_SCHEME +
|
||||||
|
"://" + MOUNT_TABLE_NAME), conf);
|
||||||
|
|
||||||
|
String serviceName = viewFs.getCanonicalServiceName();
|
||||||
|
assertNotNull(serviceName);
|
||||||
|
assertEquals(MOUNT_TABLE_NAME, serviceName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetCanonicalServiceNameWithDefaultMountTable()
|
||||||
|
throws URISyntaxException, IOException {
|
||||||
|
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
ConfigUtil.addLink(conf, "/user", new URI("file:///"));
|
||||||
|
|
||||||
|
FileSystem viewFs = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||||
|
|
||||||
|
String serviceName = viewFs.getCanonicalServiceName();
|
||||||
|
assertNull(serviceName);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue