@Test public void testDataDirAndDataLogDir() throws Exception { File dataDir = createEmptyTestDir(); File dataLogDir = createEmptyTestDir(); // Arrange try { QuorumPeerConfig configMock = mock(QuorumPeerConfig.class); when(configMock.getDataDir()).thenReturn(dataDir); when(configMock.getDataLogDir()).thenReturn(dataLogDir); when(configMock.getMetricsProviderClassName()) .thenReturn(NullMetricsProvider.class.getName()); QuorumPeer qpMock = mock(QuorumPeer.class); doCallRealMethod().when(qpMock).setTxnFactory(any(FileTxnSnapLog.class)); when(qpMock.getTxnFactory()).thenCallRealMethod(); InjectableQuorumPeerMain qpMain = new InjectableQuorumPeerMain(qpMock); // Act qpMain.runFromConfig(configMock); // Assert FileTxnSnapLog txnFactory = qpMain.getQuorumPeer().getTxnFactory(); Assert.assertEquals(Paths.get(dataLogDir.getAbsolutePath(), "version-2").toString(), txnFactory.getDataDir().getAbsolutePath()); Assert.assertEquals(Paths.get(dataDir.getAbsolutePath(), "version-2").toString(), txnFactory.getSnapDir().getAbsolutePath()); } finally { FileUtils.deleteDirectory(dataDir); FileUtils.deleteDirectory(dataLogDir); } }
/** * Read attributes from a QuorumPeerConfig. * @param config */ public void readFrom(QuorumPeerConfig config) { clientPortAddress = config.getClientPortAddress(); dataDir = config.getDataDir(); dataLogDir = config.getDataLogDir(); tickTime = config.getTickTime(); maxClientCnxns = config.getMaxClientCnxns(); minSessionTimeout = config.getMinSessionTimeout(); maxSessionTimeout = config.getMaxSessionTimeout(); }
protected void initializeAndRun(String[] args) throws ConfigException, IOException { QuorumPeerConfig config = new QuorumPeerConfig(); if (args.length == 1) { config.parse(args[0]); } // Start and schedule the the purge task DatadirCleanupManager purgeMgr = new DatadirCleanupManager(config .getDataDir(), config.getDataLogDir(), config .getSnapRetainCount(), config.getPurgeInterval()); purgeMgr.start(); if (args.length == 1 && config.servers.size() > 0) { runFromConfig(config); } else { LOG.warn("Either no config or no quorum defined in config, running " + " in standalone mode"); // there is only server in the quorum -- run as standalone ZooKeeperServerMain.main(args); } }
protected void initializeAndRun(String[] args) throws ConfigException, IOException, AdminServerException { QuorumPeerConfig config = new QuorumPeerConfig(); if (args.length == 1) { config.parse(args[0]); } // Start and schedule the the purge task DatadirCleanupManager purgeMgr = new DatadirCleanupManager(config .getDataDir(), config.getDataLogDir(), config .getSnapRetainCount(), config.getPurgeInterval()); purgeMgr.start(); if (args.length == 1 && config.isDistributed()) { runFromConfig(config); } else { LOG.warn("Either no config or no quorum defined in config, running " + " in standalone mode"); // there is only server in the quorum -- run as standalone ZooKeeperServerMain.main(args); } }
/** * Read attributes from a QuorumPeerConfig. * @param config */ public void readFrom(QuorumPeerConfig config) { clientPortAddress = config.getClientPortAddress(); secureClientPortAddress = config.getSecureClientPortAddress(); dataDir = config.getDataDir(); dataLogDir = config.getDataLogDir(); tickTime = config.getTickTime(); maxClientCnxns = config.getMaxClientCnxns(); minSessionTimeout = config.getMinSessionTimeout(); maxSessionTimeout = config.getMaxSessionTimeout(); metricsProviderClassName = config.getMetricsProviderClassName(); metricsProviderConfiguration = config.getMetricsProviderConfiguration(); }
private void startDistributed() throws IOException { logger.info("Starting Embedded ZooKeeper Peer"); try { transactionLog = new FileTxnSnapLog(new File(quorumPeerConfig.getDataLogDir()), new File(quorumPeerConfig.getDataDir())); connectionFactory = ServerCnxnFactory.createFactory(); connectionFactory.configure(quorumPeerConfig.getClientPortAddress(), quorumPeerConfig.getMaxClientCnxns()); quorumPeer = new QuorumPeer(); quorumPeer.setClientPortAddress(quorumPeerConfig.getClientPortAddress()); quorumPeer.setTxnFactory(new FileTxnSnapLog(new File(quorumPeerConfig.getDataLogDir()), new File(quorumPeerConfig.getDataDir()))); quorumPeer.setQuorumPeers(quorumPeerConfig.getServers()); quorumPeer.setElectionType(quorumPeerConfig.getElectionAlg()); quorumPeer.setMyid(quorumPeerConfig.getServerId()); quorumPeer.setTickTime(quorumPeerConfig.getTickTime()); quorumPeer.setMinSessionTimeout(quorumPeerConfig.getMinSessionTimeout()); quorumPeer.setMaxSessionTimeout(quorumPeerConfig.getMaxSessionTimeout()); quorumPeer.setInitLimit(quorumPeerConfig.getInitLimit()); quorumPeer.setSyncLimit(quorumPeerConfig.getSyncLimit()); quorumPeer.setQuorumVerifier(quorumPeerConfig.getQuorumVerifier()); quorumPeer.setCnxnFactory(connectionFactory); quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); quorumPeer.setLearnerType(quorumPeerConfig.getPeerType()); quorumPeer.setSyncEnabled(quorumPeerConfig.getSyncEnabled()); quorumPeer.setQuorumListenOnAllIPs(quorumPeerConfig.getQuorumListenOnAllIPs()); quorumPeer.start(); } catch (final IOException ioe) { throw new IOException("Failed to start embedded ZooKeeper Peer", ioe); } catch (final Exception e) { throw new RuntimeException("Failed to start embedded ZooKeeper Peer", e); } }
public synchronized void start() throws IOException { if (started) { return; } if (quorumPeerConfig.getPurgeInterval() > 0) { datadirCleanupManager = new DatadirCleanupManager(quorumPeerConfig .getDataDir(), quorumPeerConfig.getDataLogDir(), quorumPeerConfig .getSnapRetainCount(), quorumPeerConfig.getPurgeInterval()); datadirCleanupManager.start(); } if (quorumPeerConfig.isDistributed()) { startDistributed(); } else { startStandalone(); } started = true; }
@Override public void runFromConfig(QuorumPeerConfig config) throws IOException, AdminServerException { quorumPeer = new CustomQuorumPeer(config.getQuorumVerifier().getAllMembers(), config.getDataDir(), config.getDataLogDir(), config.getClientPortAddress().getPort(), config.getElectionAlg(), config.getServerId(), config.getTickTime(), config.getInitLimit(), config.getSyncLimit()); quorumPeer.setConfigFileName(config.getConfigFilename()); quorumPeer.start(); try { quorumPeer.join(); } catch (InterruptedException e) { LOG.warn("Quorum Peer interrupted", e); } } }
quorumConfig.getDataLogDir(), quorumConfig.getSnapRetainCount(), quorumConfig.getPurgeInterval());
new File(config.getDataLogDir()), new File(config.getDataDir()))); quorumPeer.setElectionType(config.getElectionAlg());
quorumPeer.setRootMetricsContext(metricsProvider.getRootContext()); quorumPeer.setTxnFactory(new FileTxnSnapLog( config.getDataLogDir(), config.getDataDir())); quorumPeer.enableLocalSessions(config.areLocalSessionsEnabled());
quorumConfig.getDataLogDir(), quorumConfig.getSnapRetainCount(), quorumConfig.getPurgeInterval());
quorumConfig.getDataLogDir(), quorumConfig.getSnapRetainCount(), quorumConfig.getPurgeInterval());
/** * Read attributes from a QuorumPeerConfig. * @param config */ public void readFrom(QuorumPeerConfig config) { clientPortAddress = config.getClientPortAddress(); dataDir = config.getDataDir(); dataLogDir = config.getDataLogDir(); tickTime = config.getTickTime(); maxClientCnxns = config.getMaxClientCnxns(); minSessionTimeout = config.getMinSessionTimeout(); maxSessionTimeout = config.getMaxSessionTimeout(); }
peerConfig.getServers(), new File(peerConfig.getDataDir()), new File(peerConfig.getDataLogDir()), peerConfig.getElectionAlg(), peerConfig.getServerId(), registration = context.registerService(QuorumStats.Provider.class, server, null); startCleanupManager(peerConfig.getDataDir(), peerConfig.getDataLogDir(), props);
quorumPeer.setTxnFactory(new FileTxnSnapLog(new File(peerConfig.getDataLogDir()), new File(peerConfig.getDataDir()))); quorumPeer.setQuorumPeers(peerConfig.getServers()); quorumPeer.setElectionType(peerConfig.getElectionAlg());
quorumPeer.setClientPortAddress(config.getClientPortAddress()); quorumPeer.setTxnFactory(new FileTxnSnapLog( new File(config.getDataLogDir()), new File(config.getDataDir()))); quorumPeer.setQuorumPeers(config.getServers());
EmbeddedZooKeeper(QuorumPeerConfig zkCfg) throws IOException { cnxnFactory = createCnxnFactory(zkCfg); setTxnFactory(new FileTxnSnapLog(zkCfg.getDataLogDir(), zkCfg.getDataDir())); enableLocalSessions(zkCfg.areLocalSessionsEnabled()); enableLocalSessionsUpgrading(zkCfg.isLocalSessionsUpgradingEnabled()); setElectionType(zkCfg.getElectionAlg()); setMyid(zkCfg.getServerId()); setTickTime(zkCfg.getTickTime()); setMinSessionTimeout(zkCfg.getMinSessionTimeout()); setMaxSessionTimeout(zkCfg.getMaxSessionTimeout()); setInitLimit(zkCfg.getInitLimit()); setSyncLimit(zkCfg.getSyncLimit()); setConfigFileName(zkCfg.getConfigFilename()); setZKDatabase(new ZKDatabase(getTxnFactory())); setQuorumVerifier(zkCfg.getQuorumVerifier(), false); if (zkCfg.getLastSeenQuorumVerifier() != null) { setLastSeenQuorumVerifier(zkCfg.getLastSeenQuorumVerifier(), false); } initConfigInZKDatabase(); setCnxnFactory(cnxnFactory); setLearnerType(zkCfg.getPeerType()); setSyncEnabled(zkCfg.getSyncEnabled()); setQuorumListenOnAllIPs(zkCfg.getQuorumListenOnAllIPs()); configureSasl(); purgeManager = new DatadirCleanupManager(zkCfg.getDataDir(), zkCfg.getDataLogDir(), zkCfg.getSnapRetainCount(), zkCfg.getPurgeInterval()); }
EmbeddedZooKeeper(QuorumPeerConfig zkCfg) throws IOException { cnxnFactory = createCnxnFactory(zkCfg); setTxnFactory(new FileTxnSnapLog(zkCfg.getDataLogDir(), zkCfg.getDataDir())); enableLocalSessions(zkCfg.areLocalSessionsEnabled()); enableLocalSessionsUpgrading(zkCfg.isLocalSessionsUpgradingEnabled()); setElectionType(zkCfg.getElectionAlg()); setMyid(zkCfg.getServerId()); setTickTime(zkCfg.getTickTime()); setMinSessionTimeout(zkCfg.getMinSessionTimeout()); setMaxSessionTimeout(zkCfg.getMaxSessionTimeout()); setInitLimit(zkCfg.getInitLimit()); setSyncLimit(zkCfg.getSyncLimit()); setConfigFileName(zkCfg.getConfigFilename()); setZKDatabase(new ZKDatabase(getTxnFactory())); setQuorumVerifier(zkCfg.getQuorumVerifier(), false); if (zkCfg.getLastSeenQuorumVerifier() != null) { setLastSeenQuorumVerifier(zkCfg.getLastSeenQuorumVerifier(), false); } initConfigInZKDatabase(); setCnxnFactory(cnxnFactory); setLearnerType(zkCfg.getPeerType()); setSyncEnabled(zkCfg.getSyncEnabled()); setQuorumListenOnAllIPs(zkCfg.getQuorumListenOnAllIPs()); configureSasl(); purgeManager = new DatadirCleanupManager(zkCfg.getDataDir(), zkCfg.getDataLogDir(), zkCfg.getSnapRetainCount(), zkCfg.getPurgeInterval()); }
EmbeddedZooKeeper(QuorumPeerConfig zkCfg) throws IOException { cnxnFactory = createCnxnFactory(zkCfg); setTxnFactory(new FileTxnSnapLog(zkCfg.getDataLogDir(), zkCfg.getDataDir())); enableLocalSessions(zkCfg.areLocalSessionsEnabled()); enableLocalSessionsUpgrading(zkCfg.isLocalSessionsUpgradingEnabled()); setElectionType(zkCfg.getElectionAlg()); setMyid(zkCfg.getServerId()); setTickTime(zkCfg.getTickTime()); setMinSessionTimeout(zkCfg.getMinSessionTimeout()); setMaxSessionTimeout(zkCfg.getMaxSessionTimeout()); setInitLimit(zkCfg.getInitLimit()); setSyncLimit(zkCfg.getSyncLimit()); setConfigFileName(zkCfg.getConfigFilename()); setZKDatabase(new ZKDatabase(getTxnFactory())); setQuorumVerifier(zkCfg.getQuorumVerifier(), false); if (zkCfg.getLastSeenQuorumVerifier() != null) { setLastSeenQuorumVerifier(zkCfg.getLastSeenQuorumVerifier(), false); } initConfigInZKDatabase(); setCnxnFactory(cnxnFactory); setLearnerType(zkCfg.getPeerType()); setSyncEnabled(zkCfg.getSyncEnabled()); setQuorumListenOnAllIPs(zkCfg.getQuorumListenOnAllIPs()); configureSasl(); purgeManager = new DatadirCleanupManager(zkCfg.getDataDir(), zkCfg.getDataLogDir(), zkCfg.getSnapRetainCount(), zkCfg.getPurgeInterval()); }