Zookeeper_は_ IDEにzkServer(スタンドアローン)を開始する最初のステップをソースコードを読み取ります

飼育係は、オープンソースであるあなたが飼育係についての詳細を知っているか、そのソースコードを見たい場合は、ソースコードを検索し、IDEで起動するのが最善である、あなたは、それが行わ方法を確認するためにデバッグすることができますが、原理を理解するのに役立ちます。

レディソース

だから、このような私たちからと、そのソースに取得することは容易である のGitHub上で取得する ソースコードやから するApacheの公式ウェブサイト で実行バージョンの圧縮(ソースを含む)を取得します。ここでは、私はいくつかのクラスは、クラス内のデータパッケージを必要とするが、このデータパッケージを持っていないので、クラスの欠如を、アイデアランタイムを引くコンパイルしないのGitHubからソースコードの3.4.13バージョンをダウンロードしたので、コンパイラは渡すことができませんでしたそれはテストすることはできません。

 
だから、第二、その後、飼育係-3.4.13.tar.gzの解凍にダウンロードし、GitHubのはかなり異なっているからダウンロードを選択してください。
 

IDEに導入

そして、良いアイデアにソースコードをダウンロードしてください。私たちは、そうでない場合は、異常パケットの間違ったスタートは、log4j.propertiesを見つけることができない、ディレクトリへのリソースのディレクトリコピーlog4j.properties confディレクトリを作成する必要があります。

開始する準備ができました

その後、我々は、スクリプトが実際にこのクラスを実行していると起動したときに、これは、メインエントランスの飼育係で、このクラスをorg.apache.zookeeper.server.quorum.QuorumPeerMain見つけます。
 
オフトピック、スクリプトを見始めます。
 
zkCli.shスクリプトファイル
 

 

zkCli.cmd

 

戻ってきて、私たちは、起動時に設定ファイルを指定する必要があり、このクラスは、主な方法がある参照のコメントが表示されます開きます。
 
/**
     * To start the replicated server specify the configuration file name on
     * the command line.要启动复制的服务器,请在命令行上指定配置文件名。
     * @param args path to the configfile 配置文件的路径
     */
    public static void main(String[] args) {
        QuorumPeerMain main = new QuorumPeerMain();
        try {
            main.initializeAndRun(args);
        } //some catchs... 
         //some codes ...
     } LOG.info(
"Exiting normally"); System.exit(0); }

配置启动参数

首先运行这个类的main方法,会报错,说非法参数哦,如下

 

配置一下,在 Program arguments里添加配置文件的路径。

正式启动

再启动就成功了

测试是否启动成功

我们开启客户端连一下

 

连上了,并且有三个节点。

这段代码是一些初始化,并判断是单机启动还是集群启动

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) {
System.out.println("=======集群模式=======");
runFromConfig(config);
} else {
System.out.println("=======单机模式=======");
LOG.warn("Either no config or no quorum defined in config, running "
          + " in standalone mode");
ZooKeeperServerMain.main(args);
}
}

 

 

























单机版启动,到这里就结束了。篇幅原因,集群版下一篇再见。


转载请注明出处

 

おすすめ

転載: www.cnblogs.com/ibigboy/p/11353031.html
おすすめ