Example usage for org.apache.zookeeper.server.quorum QuorumPeerMain QuorumPeerMain

List of usage examples for org.apache.zookeeper.server.quorum QuorumPeerMain QuorumPeerMain

Introduction

In this page you can find the example usage for org.apache.zookeeper.server.quorum QuorumPeerMain QuorumPeerMain.

Prototype

QuorumPeerMain

Source Link

Usage

From source file:com.alibaba.wasp.zookeeper.FQuorumPeer.java

License:Apache License

private static void runZKServer(QuorumPeerConfig zkConfig) throws UnknownHostException, IOException {
    if (zkConfig.isDistributed()) {
        QuorumPeerMain qp = new QuorumPeerMain();
        qp.runFromConfig(zkConfig);/*from   w w  w  .  j  av a2  s .  c  o m*/
    } else {
        ZooKeeperServerMain zk = new ZooKeeperServerMain();
        ServerConfig serverConfig = new ServerConfig();
        serverConfig.readFrom(zkConfig);
        zk.runFromConfig(serverConfig);
    }
}

From source file:com.heliosapm.streams.kafka.KafkaTestServer.java

License:Apache License

/**
 * Starts the test server//  w w  w  . j  a v a  2  s . c  o  m
 * @throws Exception thrown on any error
 */
public void start() throws Exception {
    if (running.compareAndSet(false, true)) {
        try {
            final boolean launchZooKeeper = ConfigurationHelper.getBooleanSystemThenEnvProperty(CONFIG_ZOOKEEP,
                    DEFAULT_ZOOKEEP);
            final File zkDataDir = new File(
                    ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_DATA_DIR, DEFAULT_ZK_DATA_DIR));
            final File zkLogDir = new File(
                    ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_LOG_DIR, DEFAULT_ZK_LOG_DIR));
            final File kLogDir = new File(
                    ConfigurationHelper.getSystemThenEnvProperty(CONFIG_LOG_DIR, DEFAULT_LOG_DIR));
            delTree(zkDataDir);
            delTree(zkLogDir);
            delTree(kLogDir);
            zkConfigProperties.clear();
            if (launchZooKeeper) {
                zkConfigProperties.setProperty("tickTime", "2000");
                zkConfigProperties.setProperty("syncEnabled", "false");
                zkConfigProperties.setProperty("dataDir",
                        ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_DATA_DIR, DEFAULT_ZK_DATA_DIR));
                zkConfigProperties.setProperty("dataLogDir",
                        ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_LOG_DIR, DEFAULT_ZK_LOG_DIR));
            }
            zooKeepPort = zooKeepReservedPort.getPort();
            final String clientPortAddress = ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_IFACE,
                    DEFAULT_ZK_IFACE);
            zookeepConnect = clientPortAddress + ":" + zooKeepPort;
            if (launchZooKeeper) {
                zkConfigProperties.setProperty("clientPort", "" + zooKeepPort);
                zkConfigProperties.setProperty("clientPortAddress", clientPortAddress);
                zkConfigProperties.setProperty("maxClientCnxns", "" + ConfigurationHelper
                        .getIntSystemThenEnvProperty(CONFIG_ZK_MAXCONNS, DEFAULT_ZK_MAXCONNS));
                zkConfigProperties.setProperty("minSessionTimeout", ""
                        + ConfigurationHelper.getIntSystemThenEnvProperty(CONFIG_ZK_MINTO, DEFAULT_ZK_MINTO));
                zkConfigProperties.setProperty("maxSessionTimeout", ""
                        + ConfigurationHelper.getIntSystemThenEnvProperty(CONFIG_ZK_MAXTO, DEFAULT_ZK_MAXTO));
            }

            if (launchZooKeeper) {
                log.info(">>>>> Starting Embedded ZooKeeper...");
                log.info("Embedded Kafka ZooKeeper Config: {}", zkConfigProperties);
                zkConfig = new QuorumPeerConfig();
                //            zkConfig.parse(System.getenv("ZOOKEEPER_HOME") + File.separator + "conf" + File.separator + "zoo.cfg");
                zkConfig.parseProperties(zkConfigProperties);
                final Thread zkRunThread;
                final Throwable[] t = new Throwable[1];
                if (zkConfig.getServers().size() > 1) {
                    standalone.set(false);
                    zkServer = new QuorumPeerMain();
                    zkRunThread = new Thread("ZooKeeperRunThread") {
                        @Override
                        public void run() {
                            try {
                                zkServer.runFromConfig(zkConfig);
                            } catch (IOException ex) {
                                log.error("Failed to start ZooKeeper", ex);
                                t[0] = ex;
                            }
                        }
                    };
                } else {
                    standalone.set(true);
                    sc = new ServerConfig();
                    sc.readFrom(zkConfig);
                    zkSoServer = new ZooKeeperServerMain();
                    zkRunThread = new Thread("ZooKeeperStandaloneRunThread") {
                        @Override
                        public void run() {
                            try {
                                zkSoServer.runFromConfig(sc);
                            } catch (IOException ex) {
                                log.error("Failed to start standalone ZooKeeper", ex);
                                t[0] = ex;
                            }
                        }
                    };
                }
                zkRunThread.setDaemon(true);
                zkRunThread.start();
                log.info("<<<<< Embedded ZooKeeper started.");
            }

            //            ZooKeeperServer zkServer  = new ZooKeeperServer(new File(ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_DATA_DIR, DEFAULT_ZK_DATA_DIR)), new File(ConfigurationHelper.getSystemThenEnvProperty(CONFIG_ZK_LOG_DIR, DEFAULT_ZK_LOG_DIR)), 200);
            configProperties.clear();
            kafkaPort = kafkaReservedPort.getPort();
            configProperties.setProperty("delete.topic.enable", "true");
            configProperties.setProperty("log.dir",
                    ConfigurationHelper.getSystemThenEnvProperty(CONFIG_LOG_DIR, DEFAULT_LOG_DIR));
            configProperties.setProperty("log.dirs",
                    ConfigurationHelper.getSystemThenEnvProperty(CONFIG_LOG_DIR, DEFAULT_LOG_DIR));
            configProperties.setProperty("port", "" + kafkaPort);
            //            configProperties.setProperty("enable.zookeeper", "" + ConfigurationHelper.getBooleanSystemThenEnvProperty(CONFIG_ZOOKEEP, DEFAULT_ZOOKEEP));
            configProperties.setProperty("zookeeper.connect", zookeepConnect);
            configProperties.setProperty("broker.id", "0");//"" + ConfigurationHelper.getIntSystemThenEnvProperty(CONFIG_BROKERID, DEFAULT_BROKERID));

            configProperties.setProperty("socket.request.max.bytes", "104857600");
            configProperties.setProperty("num.io.threads", "8");
            configProperties.setProperty("socket.send.buffer.bytes", "102400");
            configProperties.setProperty("log.retention.check.interval.ms", "300000");
            configProperties.setProperty("log.retention.hours", "168");
            configProperties.setProperty("zookeeper.connection.timeout.ms", "20000");
            configProperties.setProperty("num.recovery.threads.per.data.dir", "1");
            configProperties.setProperty("socket.receive.buffer.bytes", "102400");
            configProperties.setProperty("num.network.threads", "3");
            configProperties.setProperty("num.partitions", "1");
            configProperties.setProperty("log.segment.bytes", "1073741824");

            configProperties.setProperty("key.converter", "org.apache.kafka.connect.json.JsonConverter");
            configProperties.setProperty("internal.key.converter.schemas.enable", "false");
            configProperties.setProperty("value.converter", "org.apache.kafka.connect.json.JsonConverter");
            configProperties.setProperty("offset.storage.file.filename", "/tmp/connect.offsets");
            configProperties.setProperty("key.converter.schemas.enable", "true");
            configProperties.setProperty("offset.flush.interval.ms", "10000");
            configProperties.setProperty("internal.key.converter",
                    "org.apache.kafka.connect.json.JsonConverter");
            configProperties.setProperty("internal.value.converter.schemas.enable", "false");
            configProperties.setProperty("value.converter.schemas.enable", "true");
            configProperties.setProperty("internal.value.converter",
                    "org.apache.kafka.connect.json.JsonConverter");

            log.info(">>>>> Starting Embedded Kafka...");
            log.info("Embedded Kafka Broker Config: {}", configProperties);
            //            kafkaServer = new KafkaEmbedded(configProperties); 
            //            //kafkaServer.startup();            
            //            servers.add(kafkaServer.getKafka());
            //            
            //                        
            //            BrokerState brokerState = kafkaServer.brokerState();
            //            log.info("Base Kafka Server Up. Creating Offsets topic...");
            //            final Properties offsetTopicProps = new Properties();
            //            offsetTopicProps.setProperty("compression.type", "uncompressed");
            //            offsetTopicProps.setProperty("cleanup.policy", "compact");
            //            offsetTopicProps.setProperty("segment.bytes", "1048576");
            //            createTopic("__consumer_offsets", 1, 1, offsetTopicProps);
            //            TestUtils.waitUntilLeaderIsKnown(scala.collection.JavaConversions.asScalaBuffer(servers), "__consumer_offsets", 0, 5000);
            //            TestUtils.waitUntilMetadataIsPropagated(scala.collection.JavaConversions.asScalaBuffer(servers), "__consumer_offsets", 0, 5000);
            //            log.info("<<<<< Embedded Kafka started.");
        } catch (Exception ex) {
            running.set(false);
            configProperties.clear();
            //            try { kafkaServer.stop(); } catch (Exception x) {/* No Op */}
            kafkaServer = null;
            log.error("Failed to start embedded kafka server", ex);
            throw ex;
        }
    } else {
        log.warn("Embedded Kafka Broker already running");
    }
}

From source file:org.apache.flink.runtime.zookeeper.FlinkZooKeeperQuorumPeer.java

License:Apache License

/**
 * Runs a ZooKeeper {@link QuorumPeer} if further peers are configured or a single
 * {@link ZooKeeperServer} if no further peers are configured.
 *
 * @param zkConfigFile ZooKeeper config file 'zoo.cfg'
 * @param peerId       ID for the 'myid' file
 *///w w  w .  j  a v a 2s  .co m
public static void runFlinkZkQuorumPeer(String zkConfigFile, int peerId) throws Exception {

    Properties zkProps = new Properties();

    try (InputStream inStream = new FileInputStream(new File(zkConfigFile))) {
        zkProps.load(inStream);
    }

    LOG.info("Configuration: " + zkProps);

    // Set defaults for required properties
    setRequiredProperties(zkProps);

    // Write peer id to myid file
    writeMyIdToDataDir(zkProps, peerId);

    // The myid file needs to be written before creating the instance. Otherwise, this
    // will fail.
    QuorumPeerConfig conf = new QuorumPeerConfig();
    conf.parseProperties(zkProps);

    if (conf.isDistributed()) {
        // Run quorum peer
        LOG.info("Running distributed ZooKeeper quorum peer (total peers: {}).", conf.getServers().size());

        QuorumPeerMain qp = new QuorumPeerMain();
        qp.runFromConfig(conf);
    } else {
        // Run standalone
        LOG.info("Running standalone ZooKeeper quorum peer.");

        ZooKeeperServerMain zk = new ZooKeeperServerMain();
        ServerConfig sc = new ServerConfig();
        sc.readFrom(conf);
        zk.runFromConfig(sc);
    }
}

From source file:org.apache.sling.zookeeper.server.SlingZookeeperServer.java

License:Apache License

@Activate
public void activate(ComponentContext ctx) throws Exception {
    zkConfig = new QuorumPeerConfig();

    final Properties props = new Properties();
    final Enumeration<?> e = ctx.getProperties().keys();
    while (e.hasMoreElements()) {
        final String key = e.nextElement().toString();
        if (key.startsWith(ZK_PROP_PREFIX)) {
            props.put(key.substring(ZK_PROP_PREFIX.length()), ctx.getProperties().get(key));
        }//from  w w  w. ja  v a  2s  .  co m
    }

    // TODO hacking this for now...
    props.put("server.1", "localhost:2888:3888");
    props.put("server.2", "zk1.example.com:2888:3888");
    props.put("server.3", "zk2.example.com:2888:3888");

    // TODO should be set based on sling.home
    final File dataDir = new File("/tmp/sling/ZKDATA");
    props.put("dataDir", dataDir.getAbsolutePath());

    // TODO myid should be set in a better way
    dataDir.mkdirs();
    final File myid = new File(dataDir, "myid");
    if (!myid.exists()) {
        final FileWriter w = new FileWriter(myid);
        w.write("1\n");
        w.flush();
        w.close();
    }

    try {
        zkConfig.parseProperties(props);
        log.info("Zookeeper configuration: clientPort={}, dataDir={}, servers={}",
                new Object[] { zkConfig.getClientPortAddress(), zkConfig.getDataDir(), zkConfig.getServers() });
    } catch (Exception cfge) {
        log.error("Exception while parsing ZooKeeper properties", cfge);
        throw cfge;
    }

    zkThread = new Thread() {
        @Override
        public void run() {
            log.info("ZooKeeper Server thread {} starts", getName());
            try {
                if (zkConfig.getServers().size() == 0) {
                    throw new Exception("No Zookeper servers configured");
                } else if (zkConfig.getServers().size() > 1) {
                    QuorumPeerMain zkServer = new QuorumPeerMain();
                    zkServer.runFromConfig(zkConfig);
                } else {
                    ServerConfig sc = new ServerConfig();
                    sc.readFrom(zkConfig);
                    ZooKeeperServerMain zkServer = new ZooKeeperServerMain();
                    zkServer.runFromConfig(sc);
                }
            } catch (Exception e) {
                log.error("Zookeeper server exception", e);
            }
            log.info("ZooKeeper Server thread {} ends", getName());
        }
    };

    log.info("Starting embedded Zookeeper server with {} servers on port {}", zkConfig.getServers().size(),
            zkConfig.getClientPortAddress().getPort());

    zkThread.setDaemon(true);
    zkThread.start();
}

From source file:org.apache.solr.cloud.SolrZkServer.java

License:Apache License

public void start() {
    if (zkRun == null)
        return;//w w  w . j  a v a 2s.co  m

    zkThread = new Thread() {
        @Override
        public void run() {
            try {
                if (zkProps.getServers().size() > 1) {
                    QuorumPeerMain zkServer = new QuorumPeerMain();
                    zkServer.runFromConfig(zkProps);
                } else {
                    ServerConfig sc = new ServerConfig();
                    sc.readFrom(zkProps);
                    ZooKeeperServerMain zkServer = new ZooKeeperServerMain();
                    zkServer.runFromConfig(sc);
                }
                log.info("ZooKeeper Server exited.");
            } catch (Throwable e) {
                log.error("ZooKeeper Server ERROR", e);
                throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
            }
        }
    };

    if (zkProps.getServers().size() > 1) {
        log.info("STARTING EMBEDDED ENSEMBLE ZOOKEEPER SERVER at port "
                + zkProps.getClientPortAddress().getPort());
    } else {
        log.info("STARTING EMBEDDED STANDALONE ZOOKEEPER SERVER at port "
                + zkProps.getClientPortAddress().getPort());
    }

    zkThread.setDaemon(true);
    zkThread.start();
    try {
        Thread.sleep(500); // pause for ZooKeeper to start
    } catch (Exception e) {
        log.error("STARTING ZOOKEEPER", e);
    }
}

From source file:org.lab.mars.onem2m.server.quorum.M2mQuorumPeerMain.java

License:Apache License

@SuppressWarnings("static-access")
public void runFromConfig(QuorumPeerConfig config, String[] args) throws IOException {
    QuorumPeerMain quorumPeerMain = new QuorumPeerMain();
    // quorumPeerMain.main(args);
    try {//  w  ww . j a va 2  s .  co  m
        ManagedUtil.registerLog4jMBeans();
    } catch (JMException e) {
        LOG.warn("Unable to register log4j JMX control", e);
    }

    LOG.info("Starting quorum peer");
    QuorumPeerOperator.config = config;
    try {
        NetworkPool networkPool = new NetworkPool();
        networkPool.setAllServers(config.allServerStrings);
        networkPool.setMySelfIpAndPort(config.myIp + ":" + config.clientPort);
        networkPool.setReplicationFactor(config.replication_factor);
        networkPool.setAllServersToSid(config.allServers);
        networkPool.setAllQuorumServers(config.servers);
        NettyServerCnxnFactory cnxnFactory = new NettyServerCnxnFactory();
        cnxnFactory.setNetworkPool(networkPool);
        cnxnFactory.configure(config.getClientPortAddress().getPort(), 5);
        cnxnFactory.setMyIp(config.getMyIp());
        cnxnFactory.setAllServers(config.allServers);
        cnxnFactory.setReplicationFactory(config.getReplication_factor());// ??
        cnxnFactory.setTemporyAdd(config.isTemporyAdd());
        List<QuorumPeer> quorumPeers = new ArrayList<QuorumPeer>();
        long minValue = config.isTemporyAdd() ? 1 : config.replication_factor;
        for (long i = 0; i < minValue; i++) {
            QuorumPeer quorumPeer = new QuorumPeer();
            M2mQuorumServer m2mQuorumServer = config.getM2mQuorumServers();
            HashMap<Long, QuorumServer> servers = m2mQuorumServer.getPositionToServers().get(i);

            if (i == minValue - 1) {
                quorumPeer = new QuorumPeer(true);
            } else {
                quorumPeer = new QuorumPeer();
            }
            quorumPeer.setHandleIp(m2mQuorumServer.getServers().get(Integer.valueOf((i) + "")));
            quorumPeer.setQuorumVerifier(new QuorumMaj(servers.size()));
            quorumPeer.setQuorumPeers(servers);// ??
            quorumPeer.setElectionType(config.getElectionAlg());
            quorumPeer.setCnxnFactory(cnxnFactory);

            quorumPeer.setZKDatabase(new ZKDatabase(config.getNetworkPool(),
                    new M2MDataBaseImpl(config.m2mDataBase.isClean(), config.m2mDataBase.getKeyspace(),
                            config.m2mDataBase.getTable(), config.m2mDataBase.getNode()),
                    quorumPeer.getHandleIp()));
            quorumPeer.setClientPortAddress(config.getClientPortAddress());
            quorumPeer.setTxnFactory(
                    new FileTxnSnapLog(new File(config.getDataLogDir()), new File(config.getDataDir())));
            quorumPeer.setMyid(config.getServerId());
            quorumPeer.setTickTime(config.getTickTime());
            quorumPeer.setMinSessionTimeout(config.getMinSessionTimeout());
            quorumPeer.setMaxSessionTimeout(config.getMaxSessionTimeout());
            quorumPeer.setInitLimit(config.getInitLimit());
            quorumPeer.setSyncLimit(config.getSyncLimit());
            quorumPeer.setSyncEnabled(config.getSyncEnabled());
            RegisterIntoZooKeeper registerIntoZooKeeper = new RegisterIntoZooKeeper();
            registerIntoZooKeeper.setServer(config.getZooKeeperServer());
            ZooKeeper_Monitor zooKeeper_Monitor = new ZooKeeper_Monitor();
            zooKeeper_Monitor.setServer(config.getZooKeeperServer());
            zooKeeper_Monitor.setNetworkPool(networkPool);
            quorumPeer.setZooKeeper_Monitor(zooKeeper_Monitor);
            quorumPeer.setRegisterIntoZooKeeper(registerIntoZooKeeper);
            quorumPeer.setMyIp(config.getMyIp());

            quorumPeer.start();
            QuorumPeerStatistics.quorums.put(m2mQuorumServer.getServers().get(Integer.valueOf((i) + "")),
                    quorumPeer);
            quorumPeers.add(quorumPeer);

        }
        WebTcpServer webTcpServer = new WebTcpServer(cnxnFactory);
        webTcpServer.bind(config.getMyIp(), config.sidAndWebPort.get(config.serverId));

        for (QuorumPeer quorumPeer : quorumPeers) {
            quorumPeer.join();
        }
        webTcpServer.close();

    } catch (InterruptedException e) {
        // warn, but generally this is ok
        LOG.warn("Quorum Peer interrupted", e);
    }
}