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

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

Introduction

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

Prototype

public void runFromConfig(QuorumPeerConfig config) throws IOException, AdminServerException 

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);
    } else {/*from  www. ja v a2  s. c  o  m*/
        ZooKeeperServerMain zk = new ZooKeeperServerMain();
        ServerConfig serverConfig = new ServerConfig();
        serverConfig.readFrom(zkConfig);
        zk.runFromConfig(serverConfig);
    }
}

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
 *//*from  ww  w .ja  va 2s  .com*/
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. j a  v  a2 s .  c  o 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;//from   w  w  w. j a  v  a  2 s .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);
    }
}