This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/master by this push:
     new c7a54c8  Reduce use of CachedConfiguration for #735 (#909)
c7a54c8 is described below

commit c7a54c80b937fd606ebdd6b3672f837f65b6258f
Author: Mike Miller <mmil...@apache.org>
AuthorDate: Fri Jan 18 17:15:27 2019 -0500

    Reduce use of CachedConfiguration for #735 (#909)
    
    * Add hadoop conf to ClientContext and utilize where available
    * Drop use of CachedConfiguration in Volume Manager
    * Remove unused instances of CachedConfiguration from Tests
    * Replace with new object in unit tests where reuse doesn't matter
---
 .../accumulo/core/clientImpl/ClientContext.java    | 11 +++++++++++
 .../accumulo/core/clientImpl/ClientInfo.java       |  6 ++++++
 .../accumulo/core/clientImpl/ClientInfoImpl.java   |  8 ++++++++
 .../core/clientImpl/TableOperationsImpl.java       |  5 ++---
 .../accumulo/core/clientImpl/bulk/BulkImport.java  |  3 +--
 .../accumulo/core/file/BloomFilterLayer.java       |  3 +--
 .../accumulo/core/file/rfile/CreateEmpty.java      |  3 +--
 .../accumulo/core/file/rfile/SplitLarge.java       |  3 +--
 .../apache/accumulo/core/crypto/CryptoTest.java    |  8 ++++----
 .../core/file/BloomFilterLayerLookupTest.java      |  3 +--
 .../core/file/rfile/MultiLevelIndexTest.java       |  8 ++++----
 .../core/file/rfile/MultiThreadedRFileTest.java    |  3 +--
 .../apache/accumulo/core/file/rfile/RFileTest.java |  7 +++----
 .../core/iterators/DefaultIteratorEnvironment.java |  7 +++----
 .../standalone/StandaloneAccumuloCluster.java      |  3 +--
 .../apache/accumulo/server/ServerConstants.java    | 14 ++++++++------
 .../org/apache/accumulo/server/ServerInfo.java     | 15 ++++++++++++---
 .../accumulo/server/client/BulkImporter.java       |  6 ++----
 .../accumulo/server/fs/VolumeManagerImpl.java      |  4 ----
 .../apache/accumulo/server/init/Initialize.java    | 18 +++++++++---------
 .../apache/accumulo/server/util/ChangeSecret.java  |  3 ++-
 .../accumulo/server/ServerConstantsTest.java       | 22 +++++++++++++---------
 .../accumulo/server/client/BulkImporterTest.java   |  6 +++---
 .../accumulo/server/data/ServerMutationTest.java   |  4 ++--
 .../accumulo/server/fs/VolumeManagerImplTest.java  |  8 +++++---
 .../org/apache/accumulo/tserver/InMemoryMap.java   |  5 ++---
 .../org/apache/accumulo/tserver/TabletServer.java  |  3 +--
 .../apache/accumulo/tserver/logger/LogReader.java  |  3 ++-
 .../tserver/replication/AccumuloReplicaSystem.java |  2 +-
 .../apache/accumulo/tserver/InMemoryMapTest.java   |  3 +++
 .../accumulo/tserver/tablet/RootFilesTest.java     |  3 ++-
 .../accumulo/test/BulkImportMonitoringIT.java      |  2 --
 .../accumulo/test/CountNameNodeOpsBulkIT.java      |  2 --
 .../java/org/apache/accumulo/test/TestIngest.java  |  9 +++++----
 .../apache/accumulo/test/functional/BulkIT.java    | 17 -----------------
 35 files changed, 120 insertions(+), 110 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
index f5a6b5c..6d65fd9 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
@@ -64,6 +64,7 @@ import org.apache.accumulo.core.util.OpTimer;
 import org.apache.accumulo.fate.zookeeper.ZooCache;
 import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
 import org.apache.accumulo.fate.zookeeper.ZooUtil;
+import org.apache.hadoop.conf.Configuration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -89,6 +90,7 @@ public class ClientContext implements AccumuloClient {
   private Credentials creds;
   private BatchWriterConfig batchWriterConfig;
   private AccumuloConfiguration serverConf;
+  private Configuration hadoopConf;
 
   // These fields are very frequently accessed (each time a connection is 
created) and expensive to
   // compute, so cache them.
@@ -136,6 +138,7 @@ public class ClientContext implements AccumuloClient {
   public ClientContext(SingletonReservation reservation, ClientInfo info,
       AccumuloConfiguration serverConf) {
     this.info = info;
+    this.hadoopConf = info.getHadoopConf();
     zooCache = new ZooCacheFactory().getZooCache(info.getZooKeepers(),
         info.getZooKeepersSessionTimeOut());
     this.serverConf = serverConf;
@@ -242,6 +245,14 @@ public class ClientContext implements AccumuloClient {
   }
 
   /**
+   * Retrieve the hadoop configuration
+   */
+  public Configuration getHadoopConf() {
+    ensureOpen();
+    return this.hadoopConf;
+  }
+
+  /**
    * Retrieve the universal RPC client timeout from the configuration
    */
   public long getClientTimeoutInMillis() {
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfo.java 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfo.java
index 191a54e..e9103c8 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfo.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfo.java
@@ -21,6 +21,7 @@ import java.util.Properties;
 
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
+import org.apache.hadoop.conf.Configuration;
 
 /**
  * Accumulo client information. Can be built using {@link Accumulo#newClient()}
@@ -65,6 +66,11 @@ public interface ClientInfo {
   Properties getProperties();
 
   /**
+   * @return hadoop Configuration
+   */
+  Configuration getHadoopConf();
+
+  /**
    * @return ClientInfo given properties
    */
   static ClientInfo from(Properties properties) {
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfoImpl.java 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfoImpl.java
index e4b9882..3a8a1ca 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfoImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientInfoImpl.java
@@ -26,6 +26,7 @@ import java.util.Properties;
 import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
 import org.apache.accumulo.core.conf.ClientProperty;
 import org.apache.accumulo.core.conf.ConfigurationTypeHelper;
+import org.apache.hadoop.conf.Configuration;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
@@ -33,6 +34,7 @@ public class ClientInfoImpl implements ClientInfo {
 
   private Properties properties;
   private AuthenticationToken token;
+  private Configuration hadoopConf;
 
   public ClientInfoImpl(Path propertiesFile) {
     this(ClientInfoImpl.toProperties(propertiesFile));
@@ -45,6 +47,7 @@ public class ClientInfoImpl implements ClientInfo {
   public ClientInfoImpl(Properties properties, AuthenticationToken token) {
     this.properties = properties;
     this.token = token;
+    this.hadoopConf = new Configuration();
   }
 
   @Override
@@ -109,4 +112,9 @@ public class ClientInfoImpl implements ClientInfo {
     }
     return properties;
   }
+
+  @Override
+  public Configuration getHadoopConf() {
+    return this.hadoopConf;
+  }
 }
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
index 8943ca5..3893e73 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
@@ -120,7 +120,6 @@ import org.apache.accumulo.core.summary.SummaryCollection;
 import org.apache.accumulo.core.tabletserver.thrift.NotServingTabletException;
 import org.apache.accumulo.core.tabletserver.thrift.TabletClientService;
 import org.apache.accumulo.core.trace.Tracer;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.HostAndPort;
 import org.apache.accumulo.core.util.LocalityGroupUtil;
 import 
org.apache.accumulo.core.util.LocalityGroupUtil.LocalityGroupConfigurationError;
@@ -1151,7 +1150,7 @@ public class TableOperationsImpl extends 
TableOperationsHelper {
     Map<String,String> props = 
context.instanceOperations().getSystemConfiguration();
     AccumuloConfiguration conf = new ConfigurationCopy(props);
 
-    FileSystem fs = VolumeConfiguration.getVolume(dir, 
CachedConfiguration.getInstance(), conf)
+    FileSystem fs = VolumeConfiguration.getVolume(dir, 
context.getHadoopConf(), conf)
         .getFileSystem();
 
     if (dir.contains(":")) {
@@ -1481,7 +1480,7 @@ public class TableOperationsImpl extends 
TableOperationsHelper {
     }
 
     try {
-      FileSystem fs = new 
Path(importDir).getFileSystem(CachedConfiguration.getInstance());
+      FileSystem fs = new 
Path(importDir).getFileSystem(context.getHadoopConf());
       Map<String,String> props = getExportedProps(fs, new Path(importDir, 
Constants.EXPORT_FILE));
 
       for (Entry<String,String> entry : props.entrySet()) {
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
index 3ac30e7..f3ebe3d 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
@@ -72,7 +72,6 @@ import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVIterator;
 import org.apache.accumulo.core.file.blockfile.impl.CachableBlockFile;
 import org.apache.accumulo.core.spi.crypto.CryptoService;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.volume.VolumeConfiguration;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
@@ -120,7 +119,7 @@ public class BulkImport implements 
ImportDestinationArguments, ImportMappingOpti
     Map<String,String> props = 
context.instanceOperations().getSystemConfiguration();
     AccumuloConfiguration conf = new ConfigurationCopy(props);
 
-    FileSystem fs = VolumeConfiguration.getVolume(dir, 
CachedConfiguration.getInstance(), conf)
+    FileSystem fs = VolumeConfiguration.getVolume(dir, 
context.getHadoopConf(), conf)
         .getFileSystem();
 
     Path srcPath = checkPath(fs, dir);
diff --git 
a/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java 
b/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
index 22faf55..31d908c 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
@@ -53,7 +53,6 @@ import org.apache.accumulo.core.file.rfile.RFile;
 import org.apache.accumulo.core.iterators.IteratorEnvironment;
 import org.apache.accumulo.core.iterators.SortedKeyValueIterator;
 import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.accumulo.fate.util.LoggingRunnable;
 import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
@@ -473,7 +472,7 @@ public class BloomFilterLayer {
     acuconf.set(Property.TABLE_BLOOM_LOAD_THRESHOLD, "1");
     acuconf.set(Property.TSERV_BLOOM_LOAD_MAXCONCURRENT, "1");
 
-    Configuration conf = CachedConfiguration.getInstance();
+    Configuration conf = new Configuration();
     FileSystem fs = FileSystem.get(conf);
 
     String suffix = FileOperations.getNewFileExtension(acuconf);
diff --git 
a/core/src/main/java/org/apache/accumulo/core/file/rfile/CreateEmpty.java 
b/core/src/main/java/org/apache/accumulo/core/file/rfile/CreateEmpty.java
index 2652fb7..4a34663 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/CreateEmpty.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/CreateEmpty.java
@@ -25,7 +25,6 @@ import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.crypto.CryptoServiceFactory;
 import org.apache.accumulo.core.file.FileSKVWriter;
 import org.apache.accumulo.core.file.rfile.bcfile.Compression;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.slf4j.Logger;
@@ -75,7 +74,7 @@ public class CreateEmpty {
   }
 
   public static void main(String[] args) throws Exception {
-    Configuration conf = CachedConfiguration.getInstance();
+    Configuration conf = new Configuration();
 
     Opts opts = new Opts();
     opts.parseArgs(CreateEmpty.class.getName(), args);
diff --git 
a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java 
b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
index 6f330d4..ea8b5a5 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
@@ -33,7 +33,6 @@ import org.apache.accumulo.core.file.rfile.RFile.Reader;
 import org.apache.accumulo.core.file.rfile.RFile.Writer;
 import org.apache.accumulo.core.file.rfile.bcfile.BCFile;
 import org.apache.accumulo.core.spi.crypto.CryptoService;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -56,7 +55,7 @@ public class SplitLarge {
   }
 
   public static void main(String[] args) throws Exception {
-    Configuration conf = CachedConfiguration.getInstance();
+    Configuration conf = new Configuration();
     FileSystem fs = FileSystem.get(conf);
     Opts opts = new Opts();
     opts.parseArgs(SplitLarge.class.getName(), args);
diff --git a/core/src/test/java/org/apache/accumulo/core/crypto/CryptoTest.java 
b/core/src/test/java/org/apache/accumulo/core/crypto/CryptoTest.java
index 740f5ac..48c65b1 100644
--- a/core/src/test/java/org/apache/accumulo/core/crypto/CryptoTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/crypto/CryptoTest.java
@@ -66,7 +66,6 @@ import org.apache.accumulo.core.spi.crypto.CryptoService;
 import org.apache.accumulo.core.spi.crypto.CryptoService.CryptoException;
 import org.apache.accumulo.core.spi.crypto.FileDecrypter;
 import org.apache.accumulo.core.spi.crypto.FileEncrypter;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
@@ -91,13 +90,14 @@ public class CryptoTest {
       + "/target/CryptoTest-testkeyfile";
   public static final String emptyKeyPath = System.getProperty("user.dir")
       + "/target/CryptoTest-emptykeyfile";
+  private static Configuration hadoopConf = new Configuration();
 
   @Rule
   public ExpectedException exception = ExpectedException.none();
 
   @BeforeClass
   public static void setupKeyFiles() throws Exception {
-    FileSystem fs = FileSystem.getLocal(CachedConfiguration.getInstance());
+    FileSystem fs = FileSystem.getLocal(hadoopConf);
     Path aesPath = new Path(keyPath);
     try (FSDataOutputStream out = fs.create(aesPath)) {
       out.writeUTF("sixteenbytekey"); // 14 + 2 from writeUTF
@@ -206,7 +206,7 @@ public class CryptoTest {
   @Test
   public void testRFileEncrypted() throws Exception {
     AccumuloConfiguration cryptoOnConf = getAccumuloConfig(CRYPTO_ON_CONF);
-    FileSystem fs = FileSystem.getLocal(CachedConfiguration.getInstance());
+    FileSystem fs = FileSystem.getLocal(hadoopConf);
     ArrayList<Key> keys = testData();
     SummarizerConfiguration sumConf = 
SummarizerConfiguration.builder(KeyCounter.class.getName())
         .build();
@@ -243,7 +243,7 @@ public class CryptoTest {
   public void testReadNoCryptoWithCryptoConfigured() throws Exception {
     AccumuloConfiguration cryptoOffConf = getAccumuloConfig(CRYPTO_OFF_CONF);
     AccumuloConfiguration cryptoOnConf = getAccumuloConfig(CRYPTO_ON_CONF);
-    FileSystem fs = FileSystem.getLocal(CachedConfiguration.getInstance());
+    FileSystem fs = FileSystem.getLocal(hadoopConf);
     ArrayList<Key> keys = testData();
 
     String file = "target/testFile2.rf";
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/BloomFilterLayerLookupTest.java
 
b/core/src/test/java/org/apache/accumulo/core/file/BloomFilterLayerLookupTest.java
index 6afa07a..e9dc2af 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/file/BloomFilterLayerLookupTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/file/BloomFilterLayerLookupTest.java
@@ -36,7 +36,6 @@ import org.apache.accumulo.core.data.Range;
 import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.file.keyfunctor.ColumnFamilyFunctor;
 import org.apache.accumulo.core.file.rfile.RFile;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.io.Text;
@@ -80,7 +79,7 @@ public class BloomFilterLayerLookupTest {
     acuconf.set(Property.TABLE_BLOOM_LOAD_THRESHOLD, "1");
     acuconf.set(Property.TSERV_BLOOM_LOAD_MAXCONCURRENT, "1");
 
-    Configuration conf = CachedConfiguration.getInstance();
+    Configuration conf = new Configuration();
     FileSystem fs = FileSystem.get(conf);
 
     // get output file name
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiLevelIndexTest.java
 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiLevelIndexTest.java
index 9418176..c2c8142 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiLevelIndexTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiLevelIndexTest.java
@@ -38,13 +38,14 @@ import 
org.apache.accumulo.core.file.rfile.MultiLevelIndex.Reader.IndexIterator;
 import org.apache.accumulo.core.file.rfile.MultiLevelIndex.Writer;
 import 
org.apache.accumulo.core.file.rfile.RFileTest.SeekableByteArrayInputStream;
 import org.apache.accumulo.core.file.rfile.bcfile.BCFile;
-import org.apache.accumulo.core.util.CachedConfiguration;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.junit.Test;
 
 public class MultiLevelIndexTest {
+  private Configuration hadoopConf = new Configuration();
 
   @Test
   public void test1() throws Exception {
@@ -62,7 +63,7 @@ public class MultiLevelIndexTest {
     AccumuloConfiguration aconf = DefaultConfiguration.getInstance();
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     FSDataOutputStream dos = new FSDataOutputStream(baos, new 
FileSystem.Statistics("a"));
-    BCFile.Writer _cbw = new BCFile.Writer(dos, null, "gz", 
CachedConfiguration.getInstance(),
+    BCFile.Writer _cbw = new BCFile.Writer(dos, null, "gz", hadoopConf,
         CryptoServiceFactory.newInstance(aconf, ClassloaderType.JAVA));
 
     BufferedWriter mliw = new BufferedWriter(new Writer(_cbw, maxBlockSize));
@@ -83,8 +84,7 @@ public class MultiLevelIndexTest {
     byte[] data = baos.toByteArray();
     SeekableByteArrayInputStream bais = new SeekableByteArrayInputStream(data);
     FSDataInputStream in = new FSDataInputStream(bais);
-    CachableBuilder cb = new CachableBuilder().input(in).length(data.length)
-        .conf(CachedConfiguration.getInstance())
+    CachableBuilder cb = new 
CachableBuilder().input(in).length(data.length).conf(hadoopConf)
         .cryptoService(CryptoServiceFactory.newInstance(aconf, 
ClassloaderType.JAVA));
     CachableBlockFile.Reader _cbr = new CachableBlockFile.Reader(cb);
 
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
index 405524b..7e997e9 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
@@ -55,7 +55,6 @@ import 
org.apache.accumulo.core.iterators.SortedKeyValueIterator;
 import org.apache.accumulo.core.iterators.system.ColumnFamilySkippingIterator;
 import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
 import org.apache.accumulo.core.sample.impl.SamplerFactory;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.NamingThreadFactory;
 import org.apache.commons.lang.mutable.MutableInt;
 import org.apache.hadoop.conf.Configuration;
@@ -108,7 +107,7 @@ public class MultiThreadedRFileTest {
 
   public static class TestRFile {
 
-    private Configuration conf = CachedConfiguration.getInstance();
+    private Configuration conf = new Configuration();
     public RFile.Writer writer;
     private FSDataOutputStream dos;
     private AccumuloConfiguration accumuloConfiguration;
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
index 864f6d6..4e1fce7 100644
--- a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
@@ -82,7 +82,6 @@ import 
org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
 import org.apache.accumulo.core.sample.impl.SamplerFactory;
 import org.apache.accumulo.core.spi.cache.BlockCacheManager;
 import org.apache.accumulo.core.spi.cache.CacheType;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FSDataOutputStream;
@@ -122,6 +121,7 @@ public class RFileTest {
   }
 
   private static final Collection<ByteSequence> EMPTY_COL_FAMS = new 
ArrayList<>();
+  private static final Configuration hadoopConf = new Configuration();
 
   @Rule
   public TemporaryFolder tempFolder = new TemporaryFolder(
@@ -218,7 +218,7 @@ public class RFileTest {
 
   public static class TestRFile {
 
-    protected Configuration conf = CachedConfiguration.getInstance();
+    protected Configuration conf = new Configuration();
     public RFile.Writer writer;
     protected ByteArrayOutputStream baos;
     protected FSDataOutputStream dos;
@@ -1735,8 +1735,7 @@ public class RFileTest {
     byte data[] = baos.toByteArray();
     SeekableByteArrayInputStream bais = new SeekableByteArrayInputStream(data);
     FSDataInputStream in2 = new FSDataInputStream(bais);
-    CachableBuilder cb = new CachableBuilder().input(in2).length(data.length)
-        .conf(CachedConfiguration.getInstance())
+    CachableBuilder cb = new 
CachableBuilder().input(in2).length(data.length).conf(hadoopConf)
         .cryptoService(CryptoServiceFactory.newInstance(aconf, 
ClassloaderType.JAVA));
     Reader reader = new RFile.Reader(cb);
     checkIndex(reader);
diff --git 
a/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
 
b/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
index 565f9ea..84c2704 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
@@ -24,13 +24,13 @@ import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.iterators.system.MapFileIterator;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 
 public class DefaultIteratorEnvironment extends BaseIteratorEnvironment {
 
   AccumuloConfiguration conf;
+  Configuration hadoopConf = new Configuration();
 
   public DefaultIteratorEnvironment(AccumuloConfiguration conf) {
     this.conf = conf;
@@ -43,9 +43,8 @@ public class DefaultIteratorEnvironment extends 
BaseIteratorEnvironment {
   @Override
   public SortedKeyValueIterator<Key,Value> reserveMapFileReader(String 
mapFileName)
       throws IOException {
-    Configuration conf = CachedConfiguration.getInstance();
-    FileSystem fs = FileSystem.get(conf);
-    return new MapFileIterator(this.conf, fs, mapFileName, conf);
+    FileSystem fs = FileSystem.get(hadoopConf);
+    return new MapFileIterator(this.conf, fs, mapFileName, hadoopConf);
   }
 
   @Override
diff --git 
a/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
 
b/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
index 3bee50b..b93a716 100644
--- 
a/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
+++ 
b/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
@@ -36,7 +36,6 @@ import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.ConfigurationCopy;
 import org.apache.accumulo.core.conf.SiteConfiguration;
 import org.apache.accumulo.core.master.thrift.MasterGoalState;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.minicluster.ServerType;
 import org.apache.accumulo.server.ServerContext;
 import org.apache.hadoop.conf.Configuration;
@@ -189,7 +188,7 @@ public class StandaloneAccumuloCluster implements 
AccumuloCluster {
   public Configuration getHadoopConfiguration() {
     String confDir = getHadoopConfDir();
     // Using CachedConfiguration will make repeatedly calling this method much 
faster
-    final Configuration conf = CachedConfiguration.getInstance();
+    final Configuration conf = getServerContext().getHadoopConf();
     conf.addResource(new Path(confDir, "core-site.xml"));
     // Need hdfs-site.xml for NN HA
     conf.addResource(new Path(confDir, "hdfs-site.xml"));
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 
b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
index 11b6b4b..f748ddf 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
@@ -32,6 +32,7 @@ import org.apache.accumulo.core.volume.Volume;
 import org.apache.accumulo.core.volume.VolumeConfiguration;
 import org.apache.accumulo.fate.zookeeper.ZooUtil;
 import org.apache.accumulo.server.fs.VolumeUtil;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 
 public class ServerConstants {
@@ -90,14 +91,15 @@ public class ServerConstants {
   // these are functions to delay loading the Accumulo configuration unless we 
must
   public static synchronized String[] getBaseUris(AccumuloConfiguration conf) {
     if (baseUris == null) {
-      baseUris = checkBaseUris(conf, VolumeConfiguration.getVolumeUris(conf), 
false);
+      baseUris = checkBaseUris(conf, CachedConfiguration.getInstance(),
+          VolumeConfiguration.getVolumeUris(conf), false);
     }
 
     return baseUris;
   }
 
-  public static String[] checkBaseUris(AccumuloConfiguration conf, String[] 
configuredBaseDirs,
-      boolean ignore) {
+  public static String[] checkBaseUris(AccumuloConfiguration conf, 
Configuration hadoopConf,
+      String[] configuredBaseDirs, boolean ignore) {
     // all base dirs must have same instance id and data version, any dirs 
that have neither should
     // be ignored
     String firstDir = null;
@@ -109,10 +111,10 @@ public class ServerConstants {
       String currentIid;
       Integer currentVersion;
       try {
-        currentIid = ZooUtil.getInstanceIDFromHdfs(path, conf);
+        currentIid = ZooUtil.getInstanceIDFromHdfs(path, conf, hadoopConf);
         Path vpath = new Path(baseDir, VERSION_DIR);
-        currentVersion = ServerUtil.getAccumuloPersistentVersion(
-            vpath.getFileSystem(CachedConfiguration.getInstance()), vpath);
+        currentVersion = 
ServerUtil.getAccumuloPersistentVersion(vpath.getFileSystem(hadoopConf),
+            vpath);
       } catch (Exception e) {
         if (ignore)
           continue;
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java 
b/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
index 325ad67..945c04e 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
@@ -39,11 +39,13 @@ import org.apache.accumulo.fate.zookeeper.ZooUtil;
 import org.apache.accumulo.server.fs.VolumeManager;
 import org.apache.accumulo.server.fs.VolumeManagerImpl;
 import org.apache.accumulo.server.security.SystemCredentials;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 
 public class ServerInfo implements ClientInfo {
 
   private SiteConfiguration siteConfig;
+  private Configuration hadoopConf;
   private String instanceID;
   private String instanceName;
   private String zooKeepers;
@@ -55,11 +57,12 @@ public class ServerInfo implements ClientInfo {
       int zooKeepersSessionTimeOut) {
     SingletonManager.setMode(Mode.SERVER);
     this.siteConfig = siteConfig;
+    this.hadoopConf = new Configuration();
     this.instanceName = instanceName;
     this.zooKeepers = zooKeepers;
     this.zooKeepersSessionTimeOut = zooKeepersSessionTimeOut;
     try {
-      volumeManager = VolumeManagerImpl.get(siteConfig);
+      volumeManager = VolumeManagerImpl.get(siteConfig, hadoopConf);
     } catch (IOException e) {
       throw new IllegalStateException(e);
     }
@@ -83,13 +86,14 @@ public class ServerInfo implements ClientInfo {
   ServerInfo(SiteConfiguration config) {
     SingletonManager.setMode(Mode.SERVER);
     siteConfig = config;
+    hadoopConf = new Configuration();
     try {
-      volumeManager = VolumeManagerImpl.get(siteConfig);
+      volumeManager = VolumeManagerImpl.get(siteConfig, hadoopConf);
     } catch (IOException e) {
       throw new IllegalStateException(e);
     }
     Path instanceIdPath = ServerUtil.getAccumuloInstanceIdPath(volumeManager);
-    instanceID = ZooUtil.getInstanceIDFromHdfs(instanceIdPath, config);
+    instanceID = ZooUtil.getInstanceIDFromHdfs(instanceIdPath, config, 
hadoopConf);
     zooKeepers = config.get(Property.INSTANCE_ZK_HOST);
     zooKeepersSessionTimeOut = (int) 
config.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT);
     zooCache = new ZooCacheFactory().getZooCache(zooKeepers, 
zooKeepersSessionTimeOut);
@@ -153,4 +157,9 @@ public class ServerInfo implements ClientInfo {
   public Credentials getCredentials() {
     return SystemCredentials.get(getInstanceID(), getSiteConfiguration());
   }
+
+  @Override
+  public Configuration getHadoopConf() {
+    return this.hadoopConf;
+  }
 }
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java 
b/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
index 9246645..344dfd8 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
@@ -62,7 +62,6 @@ import org.apache.accumulo.core.util.StopWatch;
 import org.apache.accumulo.fate.util.LoggingRunnable;
 import org.apache.accumulo.server.ServerContext;
 import org.apache.accumulo.server.fs.VolumeManager;
-import org.apache.accumulo.server.fs.VolumeManagerImpl;
 import org.apache.accumulo.server.util.FileUtil;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -104,7 +103,7 @@ public class BulkImporter {
     this.setTime = setTime;
   }
 
-  public AssignmentStats importFiles(List<String> files) throws IOException {
+  public AssignmentStats importFiles(List<String> files) {
 
     int numThreads = 
context.getConfiguration().getCount(Property.TSERV_BULK_PROCESS_THREADS);
     int numAssignThreads = context.getConfiguration()
@@ -113,8 +112,7 @@ public class BulkImporter {
     timer = new StopWatch<>(Timers.class);
     timer.start(Timers.TOTAL);
 
-    VolumeManagerImpl.get(context.getConfiguration());
-    final VolumeManager fs = VolumeManagerImpl.get(context.getConfiguration());
+    final VolumeManager fs = context.getVolumeManager();
 
     Set<Path> paths = new HashSet<>();
     for (String file : files) {
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
 
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
index a361f9d..d6988b6 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
@@ -335,10 +335,6 @@ public class VolumeManagerImpl implements VolumeManager {
 
   private static final String DEFAULT = "";
 
-  public static VolumeManager get(AccumuloConfiguration conf) throws 
IOException {
-    return get(conf, CachedConfiguration.getInstance());
-  }
-
   public static VolumeManager get(AccumuloConfiguration conf, final 
Configuration hadoopConf)
       throws IOException {
     final Map<String,Volume> volumes = new HashMap<>();
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 
b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
index fbecf2c..2cef0b7 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
@@ -843,14 +843,14 @@ public class Initialize implements KeywordExecutable {
     return false;
   }
 
-  private static void addVolumes(VolumeManager fs, SiteConfiguration 
siteConfig)
-      throws IOException {
+  private static void addVolumes(VolumeManager fs, SiteConfiguration 
siteConfig,
+      Configuration hadoopConf) throws IOException {
 
-    String[] volumeURIs = VolumeConfiguration.getVolumeUris(siteConfig);
+    String[] volumeURIs = VolumeConfiguration.getVolumeUris(siteConfig, 
hadoopConf);
 
     HashSet<String> initializedDirs = new HashSet<>();
-    initializedDirs
-        .addAll(Arrays.asList(ServerConstants.checkBaseUris(siteConfig, 
volumeURIs, true)));
+    initializedDirs.addAll(
+        Arrays.asList(ServerConstants.checkBaseUris(siteConfig, hadoopConf, 
volumeURIs, true)));
 
     HashSet<String> uinitializedDirs = new HashSet<>();
     uinitializedDirs.addAll(Arrays.asList(volumeURIs));
@@ -860,7 +860,7 @@ public class Initialize implements KeywordExecutable {
     Path iidPath = new Path(aBasePath, ServerConstants.INSTANCE_ID_DIR);
     Path versionPath = new Path(aBasePath, ServerConstants.VERSION_DIR);
 
-    UUID uuid = UUID.fromString(ZooUtil.getInstanceIDFromHdfs(iidPath, 
siteConfig));
+    UUID uuid = UUID.fromString(ZooUtil.getInstanceIDFromHdfs(iidPath, 
siteConfig, hadoopConf));
     for (Pair<Path,Path> replacementVolume : 
ServerConstants.getVolumeReplacements(siteConfig)) {
       if (aBasePath.equals(replacementVolume.getFirst()))
         log.error(
@@ -932,9 +932,9 @@ public class Initialize implements KeywordExecutable {
     try {
       setZooReaderWriter(new ZooReaderWriter(siteConfig));
       SecurityUtil.serverLogin(siteConfig);
-      Configuration hadoopConfig = CachedConfiguration.getInstance();
+      Configuration hadoopConfig = new Configuration();
 
-      VolumeManager fs = VolumeManagerImpl.get(siteConfig);
+      VolumeManager fs = VolumeManagerImpl.get(siteConfig, hadoopConfig);
 
       if (opts.resetSecurity) {
         log.info("Resetting security on accumulo.");
@@ -960,7 +960,7 @@ public class Initialize implements KeywordExecutable {
       }
 
       if (opts.addVolumes) {
-        addVolumes(fs, siteConfig);
+        addVolumes(fs, siteConfig, hadoopConfig);
       }
 
       if (!opts.resetSecurity && !opts.addVolumes)
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java 
b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
index 0c3c4a9..4d33549 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
@@ -36,6 +36,7 @@ import org.apache.accumulo.server.ServerContext;
 import org.apache.accumulo.server.cli.ServerUtilOpts;
 import org.apache.accumulo.server.fs.VolumeManager;
 import org.apache.accumulo.server.fs.VolumeManagerImpl;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsAction;
@@ -60,7 +61,7 @@ public class ChangeSecret {
 
   public static void main(String[] args) throws Exception {
     SiteConfiguration siteConfig = new SiteConfiguration();
-    VolumeManager fs = VolumeManagerImpl.get(siteConfig);
+    VolumeManager fs = VolumeManagerImpl.get(siteConfig, new Configuration());
     verifyHdfsWritePermission(fs);
 
     Opts opts = new Opts();
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/ServerConstantsTest.java 
b/server/base/src/test/java/org/apache/accumulo/server/ServerConstantsTest.java
index 8f110ee..e9e9524 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/ServerConstantsTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/ServerConstantsTest.java
@@ -39,6 +39,7 @@ import org.junit.rules.TemporaryFolder;
 public class ServerConstantsTest {
 
   AccumuloConfiguration conf = DefaultConfiguration.getInstance();
+  Configuration hadoopConf = new Configuration();
 
   @Rule
   public TemporaryFolder folder = new TemporaryFolder(
@@ -70,17 +71,18 @@ public class ServerConstantsTest {
   }
 
   private void verifyAllPass(ArrayList<String> paths) {
-    assertEquals(paths, Arrays.asList(
-        ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), true)));
-    assertEquals(paths, Arrays.asList(
-        ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), false)));
+    assertEquals(paths, Arrays.asList(ServerConstants.checkBaseUris(conf, 
hadoopConf,
+        paths.toArray(new String[paths.size()]), true)));
+    assertEquals(paths, Arrays.asList(ServerConstants.checkBaseUris(conf, 
hadoopConf,
+        paths.toArray(new String[paths.size()]), false)));
   }
 
   private void verifySomePass(ArrayList<String> paths) {
-    assertEquals(paths.subList(0, 2), Arrays.asList(
-        ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), true)));
+    assertEquals(paths.subList(0, 2), 
Arrays.asList(ServerConstants.checkBaseUris(conf, hadoopConf,
+        paths.toArray(new String[paths.size()]), true)));
     try {
-      ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), false);
+      ServerConstants.checkBaseUris(conf, hadoopConf, paths.toArray(new 
String[paths.size()]),
+          false);
       fail();
     } catch (Exception e) {
       // ignored
@@ -89,14 +91,16 @@ public class ServerConstantsTest {
 
   private void verifyError(ArrayList<String> paths) {
     try {
-      ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), true);
+      ServerConstants.checkBaseUris(conf, hadoopConf, paths.toArray(new 
String[paths.size()]),
+          true);
       fail();
     } catch (Exception e) {
       // ignored
     }
 
     try {
-      ServerConstants.checkBaseUris(conf, paths.toArray(new 
String[paths.size()]), false);
+      ServerConstants.checkBaseUris(conf, hadoopConf, paths.toArray(new 
String[paths.size()]),
+          false);
       fail();
     } catch (Exception e) {
       // ignored
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
index 4ed1344..ddc4920 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
@@ -39,11 +39,11 @@ import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.dataImpl.KeyExtent;
 import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVWriter;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.server.ServerContext;
 import org.apache.accumulo.server.fs.VolumeManager;
 import org.apache.accumulo.server.fs.VolumeManagerImpl;
 import org.apache.commons.lang.NotImplementedException;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.Text;
@@ -110,7 +110,7 @@ public class BulkImporterTest {
   @Test
   public void testFindOverlappingTablets() throws Exception {
     MockTabletLocator locator = new MockTabletLocator();
-    FileSystem fs = FileSystem.getLocal(CachedConfiguration.getInstance());
+    FileSystem fs = FileSystem.getLocal(new Configuration());
     ServerContext context = EasyMock.createMock(ServerContext.class);
     
EasyMock.expect(context.getConfiguration()).andReturn(DefaultConfiguration.getInstance())
         .anyTimes();
@@ -145,7 +145,7 @@ public class BulkImporterTest {
     writer.append(new Key("iterator", "cf", "cq5"), empty);
     writer.append(new Key("xyzzy", "cf", "cq"), empty);
     writer.close();
-    VolumeManager vm = VolumeManagerImpl.get(context.getConfiguration());
+    VolumeManager vm = VolumeManagerImpl.get(context.getConfiguration(), new 
Configuration());
     List<TabletLocation> overlaps = 
BulkImporter.findOverlappingTablets(context, vm, locator,
         new Path(file));
     assertEquals(5, overlaps.size());
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/data/ServerMutationTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/data/ServerMutationTest.java
index 4129a51..416855d 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/data/ServerMutationTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/data/ServerMutationTest.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import org.apache.accumulo.core.data.ColumnUpdate;
 import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.util.CachedConfiguration;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.util.ReflectionUtils;
 import org.junit.Test;
@@ -52,7 +52,7 @@ public class ServerMutationTest {
     assertEquals(42L, cu.getTimestamp());
 
     ServerMutation m2 = new ServerMutation();
-    ReflectionUtils.copy(CachedConfiguration.getInstance(), m, m2);
+    ReflectionUtils.copy(new Configuration(), m, m2);
 
     updates = m2.getUpdates();
 
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/fs/VolumeManagerImplTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/fs/VolumeManagerImplTest.java
index 5a01a83..8a3c7e7 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/fs/VolumeManagerImplTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/fs/VolumeManagerImplTest.java
@@ -27,6 +27,7 @@ import org.apache.accumulo.core.conf.ConfigurationCopy;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.server.fs.VolumeManager.FileType;
 import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.junit.Before;
 import org.junit.Rule;
@@ -36,6 +37,7 @@ import org.junit.rules.ExpectedException;
 public class VolumeManagerImplTest {
 
   protected VolumeManager fs;
+  private Configuration hadoopConf = new Configuration();
 
   @Rule
   public ExpectedException thrown = ExpectedException.none();
@@ -78,7 +80,7 @@ public class VolumeManagerImplTest {
     conf.set(Property.GENERAL_VOLUME_CHOOSER,
         "org.apache.accumulo.server.fs.ChooserThatDoesntExist");
     thrown.expect(RuntimeException.class);
-    VolumeManagerImpl.get(conf);
+    VolumeManagerImpl.get(conf, hadoopConf);
   }
 
   @Test
@@ -112,7 +114,7 @@ public class VolumeManagerImplTest {
     ConfigurationCopy conf = new ConfigurationCopy();
     conf.set(Property.INSTANCE_VOLUMES, "viewfs://dummy");
     thrown.expect(IllegalArgumentException.class);
-    VolumeManagerImpl.get(conf);
+    VolumeManagerImpl.get(conf, hadoopConf);
   }
 
   public static class WrongVolumeChooser implements VolumeChooser {
@@ -134,7 +136,7 @@ public class VolumeManagerImplTest {
     conf.set(Property.INSTANCE_VOLUMES, StringUtils.join(volumes, ","));
     conf.set(Property.GENERAL_VOLUME_CHOOSER, 
WrongVolumeChooser.class.getName());
     thrown.expect(RuntimeException.class);
-    VolumeManager vm = VolumeManagerImpl.get(conf);
+    VolumeManager vm = VolumeManagerImpl.get(conf, hadoopConf);
     VolumeChooserEnvironment chooserEnv = new 
VolumeChooserEnvironment(Table.ID.of("sometable"),
         null);
     String choice = vm.choose(chooserEnv, volumes.toArray(new String[0]));
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java
index cc7db1a..390134d 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java
@@ -63,7 +63,6 @@ import 
org.apache.accumulo.core.iterators.system.SourceSwitchingIterator;
 import 
org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.DataSource;
 import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
 import org.apache.accumulo.core.sample.impl.SamplerFactory;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.LocalityGroupUtil;
 import org.apache.accumulo.core.util.LocalityGroupUtil.Partitioner;
 import org.apache.accumulo.core.util.Pair;
@@ -582,7 +581,7 @@ public class InMemoryMap {
 
     private synchronized FileSKVIterator getReader() throws IOException {
       if (reader == null) {
-        Configuration conf = CachedConfiguration.getInstance();
+        Configuration conf = context.getHadoopConf();
         FileSystem fs = FileSystem.getLocal(conf);
 
         reader = new RFileOperations().newReaderBuilder()
@@ -743,7 +742,7 @@ public class InMemoryMap {
     if (activeIters.size() > 0) {
       // dump memmap exactly as is to a tmp file on disk, and switch scans to 
that temp file
       try {
-        Configuration conf = CachedConfiguration.getInstance();
+        Configuration conf = context.getHadoopConf();
         FileSystem fs = FileSystem.getLocal(conf);
 
         String tmpFile = memDumpDir + "/memDump" + UUID.randomUUID() + "." + 
RFile.EXTENSION;
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index d0bf82b..030b1df 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -152,7 +152,6 @@ import org.apache.accumulo.core.trace.Trace;
 import org.apache.accumulo.core.trace.thrift.TInfo;
 import org.apache.accumulo.core.trace.wrappers.TraceWrap;
 import org.apache.accumulo.core.util.ByteBufferUtil;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.ColumnFQ;
 import org.apache.accumulo.core.util.Daemon;
 import org.apache.accumulo.core.util.HostAndPort;
@@ -384,7 +383,7 @@ public class TabletServer implements Runnable {
 
     final long walogMaxSize = aconf.getAsBytes(Property.TSERV_WALOG_MAX_SIZE);
     final long walogMaxAge = 
aconf.getTimeInMillis(Property.TSERV_WALOG_MAX_AGE);
-    final long minBlockSize = CachedConfiguration.getInstance()
+    final long minBlockSize = context.getHadoopConf()
         .getLong("dfs.namenode.fs-limits.min-block-size", 0);
     if (minBlockSize != 0 && minBlockSize > walogMaxSize)
       throw new RuntimeException("Unable to start TabletServer. Logger is set 
to use blocksize "
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogReader.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogReader.java
index 7dda094..2433fae 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogReader.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogReader.java
@@ -40,6 +40,7 @@ import org.apache.accumulo.tserver.log.DfsLogger;
 import org.apache.accumulo.tserver.log.DfsLogger.DFSLoggerInputStreams;
 import org.apache.accumulo.tserver.log.DfsLogger.LogHeaderIncompleteException;
 import org.apache.accumulo.tserver.log.RecoveryLogReader;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.Text;
@@ -76,7 +77,7 @@ public class LogReader {
     Opts opts = new Opts();
     opts.parseArgs(LogReader.class.getName(), args);
     SiteConfiguration siteConfig = new SiteConfiguration();
-    VolumeManager fs = VolumeManagerImpl.get(siteConfig);
+    VolumeManager fs = VolumeManagerImpl.get(siteConfig, new Configuration());
 
     Matcher rowMatcher = null;
     KeyExtent ke = null;
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/replication/AccumuloReplicaSystem.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/replication/AccumuloReplicaSystem.java
index 83f994a..dd4206d 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/replication/AccumuloReplicaSystem.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/replication/AccumuloReplicaSystem.java
@@ -123,7 +123,7 @@ public class AccumuloReplicaSystem implements ReplicaSystem 
{
     conf = context.getConfiguration();
 
     try {
-      fs = VolumeManagerImpl.get(conf);
+      fs = VolumeManagerImpl.get(conf, context.getHadoopConf());
     } catch (IOException e) {
       log.error("Could not connect to filesystem", e);
       throw new RuntimeException(e);
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
index 0a593aa..c573e8c 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
@@ -62,6 +62,7 @@ import 
org.apache.accumulo.core.util.LocalityGroupUtil.LocalityGroupConfiguratio
 import org.apache.accumulo.server.ServerContext;
 import org.apache.accumulo.server.conf.ZooConfiguration;
 import org.apache.accumulo.tserver.InMemoryMap.MemoryIterator;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.Text;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
@@ -110,11 +111,13 @@ public class InMemoryMapTest {
   }
 
   public static ServerContext getServerContext() {
+    Configuration hadoopConf = new Configuration();
     ServerContext context = EasyMock.createMock(ServerContext.class);
     
EasyMock.expect(context.getCryptoService()).andReturn(CryptoServiceFactory.newDefaultInstance())
         .anyTimes();
     
EasyMock.expect(context.getConfiguration()).andReturn(DefaultConfiguration.getInstance())
         .anyTimes();
+    EasyMock.expect(context.getHadoopConf()).andReturn(hadoopConf).anyTimes();
     EasyMock.replay(context);
     return context;
   }
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/RootFilesTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/RootFilesTest.java
index be4cabe..9155e26 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/RootFilesTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/RootFilesTest.java
@@ -33,6 +33,7 @@ import org.apache.accumulo.server.fs.FileRef;
 import org.apache.accumulo.server.fs.RandomVolumeChooser;
 import org.apache.accumulo.server.fs.VolumeManager;
 import org.apache.accumulo.server.fs.VolumeManagerImpl;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.junit.Rule;
 import org.junit.Test;
@@ -127,7 +128,7 @@ public class RootFilesTest {
     conf.set(Property.INSTANCE_DFS_DIR, "/");
     conf.set(Property.GENERAL_VOLUME_CHOOSER, 
RandomVolumeChooser.class.getName());
 
-    VolumeManager vm = VolumeManagerImpl.get(conf);
+    VolumeManager vm = VolumeManagerImpl.get(conf, new Configuration());
 
     TestWrapper wrapper = new TestWrapper(vm, conf, "A00004.rf", "A00002.rf", 
"F00003.rf");
     wrapper.prepareReplacement();
diff --git 
a/test/src/main/java/org/apache/accumulo/test/BulkImportMonitoringIT.java 
b/test/src/main/java/org/apache/accumulo/test/BulkImportMonitoringIT.java
index c18bf8d..362bf79 100644
--- a/test/src/main/java/org/apache/accumulo/test/BulkImportMonitoringIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/BulkImportMonitoringIT.java
@@ -38,7 +38,6 @@ import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVWriter;
 import org.apache.accumulo.core.file.rfile.RFile;
 import org.apache.accumulo.core.master.thrift.MasterMonitorInfo;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.Pair;
 import org.apache.accumulo.minicluster.ServerType;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl;
@@ -81,7 +80,6 @@ public class BulkImportMonitoringIT extends 
ConfigurableMacBase {
       log.info("Creating lots of bulk import files");
       final FileSystem fs = getCluster().getFileSystem();
       final Path basePath = getCluster().getTemporaryPath();
-      CachedConfiguration.setInstance(fs.getConf());
 
       final Path base = new Path(basePath, "testBulkLoad" + tableName);
       fs.delete(base, true);
diff --git 
a/test/src/main/java/org/apache/accumulo/test/CountNameNodeOpsBulkIT.java 
b/test/src/main/java/org/apache/accumulo/test/CountNameNodeOpsBulkIT.java
index 06f4ce5..67d86b6 100644
--- a/test/src/main/java/org/apache/accumulo/test/CountNameNodeOpsBulkIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/CountNameNodeOpsBulkIT.java
@@ -41,7 +41,6 @@ import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVWriter;
 import org.apache.accumulo.core.file.rfile.RFile;
 import org.apache.accumulo.core.master.thrift.MasterMonitorInfo;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.minicluster.ServerType;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl;
 import org.apache.accumulo.test.functional.ConfigurableMacBase;
@@ -113,7 +112,6 @@ public class CountNameNodeOpsBulkIT extends 
ConfigurableMacBase {
       log.info("Creating lots of bulk import files");
       final FileSystem fs = getCluster().getFileSystem();
       final Path basePath = getCluster().getTemporaryPath();
-      CachedConfiguration.setInstance(fs.getConf());
 
       final Path base = new Path(basePath, "testBulkLoad" + tableName);
       fs.delete(base, true);
diff --git a/test/src/main/java/org/apache/accumulo/test/TestIngest.java 
b/test/src/main/java/org/apache/accumulo/test/TestIngest.java
index ea53eb2..283a905 100644
--- a/test/src/main/java/org/apache/accumulo/test/TestIngest.java
+++ b/test/src/main/java/org/apache/accumulo/test/TestIngest.java
@@ -34,6 +34,7 @@ import 
org.apache.accumulo.core.client.MutationsRejectedException;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.security.SecurityErrorCode;
+import org.apache.accumulo.core.clientImpl.ClientContext;
 import org.apache.accumulo.core.clientImpl.TabletServerBatchWriter;
 import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.crypto.CryptoServiceFactory;
@@ -48,7 +49,6 @@ import org.apache.accumulo.core.file.rfile.RFile;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.ColumnVisibility;
 import org.apache.accumulo.core.trace.DistributedTrace;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.core.util.FastFormat;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
@@ -227,9 +227,9 @@ public class TestIngest {
     FileSKVWriter writer = null;
 
     if (opts.outputFile != null) {
-      Configuration conf = CachedConfiguration.getInstance();
+      ClientContext cc = (ClientContext) accumuloClient;
       writer = FileOperations.getInstance().newWriterBuilder()
-          .forFile(opts.outputFile + "." + RFile.EXTENSION, fs, conf,
+          .forFile(opts.outputFile + "." + RFile.EXTENSION, fs, 
cc.getHadoopConf(),
               CryptoServiceFactory.newDefaultInstance())
           .withTableConfiguration(DefaultConfiguration.getInstance()).build();
       writer.startDefaultLocalityGroup();
@@ -357,6 +357,7 @@ public class TestIngest {
   public static void ingest(AccumuloClient c, Opts opts, BatchWriterOpts 
batchWriterOpts)
       throws MutationsRejectedException, IOException, AccumuloException, 
AccumuloSecurityException,
       TableNotFoundException, TableExistsException {
-    ingest(c, FileSystem.get(CachedConfiguration.getInstance()), opts, 
batchWriterOpts);
+    ClientContext cc = (ClientContext) c;
+    ingest(c, FileSystem.get(cc.getHadoopConf()), opts, batchWriterOpts);
   }
 }
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/BulkIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/BulkIT.java
index 8a60208..4069d2c 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/BulkIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/BulkIT.java
@@ -25,7 +25,6 @@ import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.clientImpl.ClientInfo;
-import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.harness.AccumuloClusterHarness;
 import org.apache.accumulo.test.TestIngest;
 import org.apache.accumulo.test.TestIngest.Opts;
@@ -33,8 +32,6 @@ import org.apache.accumulo.test.VerifyIngest;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
 
 public class BulkIT extends AccumuloClusterHarness {
@@ -49,20 +46,6 @@ public class BulkIT extends AccumuloClusterHarness {
     return 4 * 60;
   }
 
-  private Configuration origConf;
-
-  @Before
-  public void saveConf() {
-    origConf = CachedConfiguration.getInstance();
-  }
-
-  @After
-  public void restoreConf() {
-    if (origConf != null) {
-      CachedConfiguration.setInstance(origConf);
-    }
-  }
-
   @Test
   public void test() throws Exception {
     try (AccumuloClient client = createAccumuloClient()) {

Reply via email to