----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/23397/#review57582 -----------------------------------------------------------
minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java <https://reviews.apache.org/r/23397/#comment98367> I looked into this code, its full of landmines. It calls VolumeManager.get() which uses static config for accumulo-site.xml (which may not be the accumulo-site you want). Want to avoid this. Want to make sure that all info is obtained using your accumulo-site.xml and your haddop config. Below I put together some code that I think mostly does this. Tried to make sure the instance id is obtained from filesystem using your config and that zookeeper is obtained using your config. ```java Configuration config = new Configuration(false); config.addResource(yourAccumuloSite); ConfigurationCopy cc = new ConfigurationCopy(config); try { fs = VolumeManagerImpl.get(cc); } catch (IOException e) { throw new RuntimeException(e); } Path instanceIdPath = Accumulo.getAccumuloInstanceIdPath(fs); //TODO this method calls CahcedConfig.getInstance(), should create a method where hadoop config is passed in String instanceIdFromFile = ZooUtil.getInstanceIDFromHdfs(instanceIdPath, cc); zrw = new ZooReaderWriterFactory.getZooReaderWriter(cc.get(Property.INSTANCE_ZK_HOST), (int) cc.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT), cc.get(Property.INSTANCE_SECRET)); String rootPath = ZooUtil.getRoot(instanceIdFromFile); //TODO pass this root path to isAccumuloOffline ``` - kturner On Oct. 21, 2014, 12:32 a.m., John Vines wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/23397/ > ----------------------------------------------------------- > > (Updated Oct. 21, 2014, 12:32 a.m.) > > > Review request for accumulo. > > > Bugs: ACCUMULO-2984 > https://issues.apache.org/jira/browse/ACCUMULO-2984 > > > Repository: accumulo > > > Description > ------- > > Adds a change to SiteConfiguration to allow external setting of the xml > configuration file. > Adds a single method to MiniAccumuloConfig which allows a user to point to > accumulo-site.xml and HADOOP_CONF_DIR to use for pulling out requisite > instance information > Clusters configurations into those required to run inside a MAC-sized > footprint and those which are for arbitrary naming schemes for MAC > Provides flagging to prevent uneccessary folder creation > Provides flagging to prevent running zookeeper and initializing > > > Diffs > ----- > > core/src/main/java/org/apache/accumulo/core/conf/SiteConfiguration.java > 9b65e7d > > minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloConfig.java > be80f85 > > minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java > 5d8501e > > minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java > e9ad045 > > server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java > 3508164 > > server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java > 50dec57 > > server/base/src/main/java/org/apache/accumulo/server/util/AccumuloStatus.java > PRE-CREATION > > server/base/src/main/java/org/apache/accumulo/server/zookeeper/ZooReaderWriter.java > 435591d > test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java PRE-CREATION > > Diff: https://reviews.apache.org/r/23397/diff/ > > > Testing > ------- > > Ran the following test code- > public class TestMACWithRealInstance { > public static void main(String args[]) throws IOException, > AccumuloException, AccumuloSecurityException, TableExistsException, > InterruptedException { > MiniAccumuloConfig macConfig = new MiniAccumuloConfig(new > File("/tmp/mac"), "secret"); > macConfig.setNumTservers(2); > macConfig.setMemory(ServerType.TABLET_SERVER, 2, MemoryUnit.GIGABYTE); > macConfig.useExistingInstance(new > File("/usr/lib/accumulo/conf/accumulo-site.xml"), new > File("/usr/lib/hadoop/conf")); > MiniAccumuloCluster mac = new MiniAccumuloCluster(macConfig); > mac.start(); > System.out.println("Started"); > mac.getConnector("root", "secret").tableOperations().create("macCreated"); > System.out.println("Stopping"); > mac.stop(); > System.out.println("Stopped"); > } > } > Which runs fine, except stopping issues which seem to be related to > ACCUMULO-2985 > > After running this, I validated that the table was created in the real > accumulo instance via zkCli > > > Thanks, > > John Vines > >
