Zookeeperのインストールとディレクトリ構造

まず、公式ウェブサイトhttps://www.apache.org/dyn/closer.cgi/zookeeper/にアクセスしてZookeeper ダウンロードする必要があります。次に、Windows環境でのインストールを確認します。実際、これは非常に簡単です。解凍後の解凍後のファイルディレクトリ構造は次のとおりです。
ここに画像の説明を挿入

次にzoo_sample.cfgファイルを圧縮されていないconfフォルダーにコピーし、名前を変更しzoo.cfgます。
ここに画像の説明を挿入
次にZookeeperを起動zkServer.cmlできます。binディレクトリをダブルクリックて開始すると、Zookeeperを見つけることができます。
ここに画像の説明を挿入
ここに画像の説明を挿入


Windows環境でのインストールは特に簡単ではありませんが、一般的な生成環境では、Linuxシステムでインストールされているので、Linuxシステムでのインストールの違いは何ですか?実際、手順は基本的に同じですが、解凍してconfに入れますzoo_sample.cfgファイルのコピーを作成し、名前を変更しzoo.cfgます。
ここに画像の説明を挿入

そして、我々はまた、binディレクトリに開始することができますされて
ここに画像の説明を挿入
スタートした後、我々は使用することができjps、それが正常に起動するかどうかを確認します
ここに画像の説明を挿入

起動が完了した後、我々はまた、ビューに接続し、飼育係のグラフィカルなクライアントツールZooInspectorをダウンロードすることができ、ダウンロードアドレスは:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip、ダウンロードが完了するとその後、直接開いてビルドフォルダzookeeper-dev-ZooInspector.jarに接続できます
ここに画像の説明を挿入

上の図の実行ボタンをクリックして、接続する仮想マシンのIPアドレスを入力します。接続に失敗した場合は、仮想マシンのポート2181が開いているかどうかを確認できます
ここに画像の説明を挿入




上記のZookeeperをインストールした場合、上記のディレクトリ構造で赤でマークされたbinフォルダーとconfフォルダーに主に移動する必要があります。これらはさらに2つの重要なフォルダーです。これらのbinファイルでは、WindowsまたはLinux環境でZookeeperサービスを開始します。最後に、クライアントを起動するためのツールも含まれます。この次の紹介では、主にzoo.cfgファイルを紹介するconfフォルダーを見てみましょう。
ここに画像の説明を挿入

その中でも、主にログファイルのパス、スナップショットファイルのパス、ポート番号などを構成します。
ここに画像の説明を挿入

  • clientPort:クライアントがサーバーに接続するポート、つまり外部サービスポート。通常は2181に設定されています
  • dataDir:スナップショットファイルが保存されるディレクトリ。デフォルトでは、トランザクションログもここに保存されます。同時にパラメーターdataLogDirを構成することをお勧めします。トランザクションログの書き込みパフォーマンスはzkパフォーマンスに直接影響します
  • dataLogDir:トランザクションログ出力ディレクトリ。トランザクションログ出力用に別のディスクまたはマウントポイントを構成してみてください。これにより、ZKパフォーマンスが大幅に向上します。(Javaシステムプロパティなし)

さらに、次のように他のさまざまなパラメータを設定することもできます。

パラメータ名 説明文
tickTime ZKの時間単位。ZKのすべての時間はこの時間単位に基づいており、整数の倍数で構成されます。たとえば、セッションの最小タイムアウトは2 * tickTimeです。
initLimit 起動プロセス中に、フォロワーはリーダーからのすべての最新データを同期し、その外部サービスの開始状態を決定します。リーダーは、Fがこの作業をinitLimit時間内に完了することを許可します。通常の状況では、このパラメーターの設定についてあまり気にしません。ZKクラスターのデータ量が非常に大きい場合、Fを開始すると、リーダーからのデータを同期する時間もそれに応じて増加するため、この場合、このパラメーターを適切に増加する必要があります。(Javaシステムプロパティなし)
syncLimit 運用中、リーダーは、ZKクラスタ内のすべてのマシンと通信する責任があります。たとえば、ハートビート検出メカニズムを介して、マシンの生存状態を検出します。LがsyncLimitの後にハートビートパケットを送信し、Fからの応答を受信して​​いない場合、Fはオンラインではなくなったと見なされます。注:このパラメーターを大きくしすぎないでください。大きすぎると、問題が発生する可能性があります。
snapCount snapshotCountトランザクションログが出力されるたびに、スナップショットがトリガーされます。このとき、ZKはスナップショットを生成します。*ファイルを作成し、新しいトランザクションログファイルのログを作成します。*同時に。デフォルトは100000です。(実際のコード実装では、特定の乱数処理が実行され、すべてのサーバーが同時にスナップショットを取得してパフォーマンスに影響を与えないようにします)(Javaシステムプロパティ:zookeeper.snapCount)
skipACL すべてのクライアント要求に対してACLチェックは実行されません。前のノードに権限制限が設定されている場合、サーバーで最初を開くと、それも無効になります。(Javaシステムプロパティ:zookeeper.skipACL)
jute.maxbuffer ノードあたりの最大データ量は、デフォルトで1Mです。この制限を有効にするには、サーバー側とクライアント側の両方で設定する必要があります。(Javaシステムプロパティ:jute.maxbuffer)
cnxTimeout リーダー選出プロセス中、接続を開くためのタイムアウト期間はデフォルトで5秒です。(Javaシステムプロパティ:zookeeper。CnxTimeout)
globalOutstandingLimit リクエストスタックの最大数。デフォルトは1000です。ZKが実行されている場合、サーバーはより多くのクライアント要求を自由に処理できませんが、それでもクライアントはサーバーに要求を送信してスループットパフォーマンスを向上させることができます。もちろん、サーバーのメモリがオーバーフローしないようにするために、このリクエストのスタック数を制限する必要があります。(Javaシステムプロパティ:zookeeper.globalOutstandingLimit。)
preAllocSize トランザクションログに後で書き込むために、事前にディスク領域を解放します。デフォルトは64Mで、各トランザクションログのサイズは64Mです。ZKのスナップショット頻度が大きい場合は、このパラメーターを適切に減らすことをお勧めします。(Javaシステムプロパティ:zookeeper.preAllocSize)
traceFile これは、すべてのリクエストをログに記録するために使用されます。一般的なデバッグプロセス中に使用できますが、パフォーマンスに深刻な影響を与える本番環境には推奨されません。(Javaシステムプロパティ:?requestTraceFile)
maxClientCnxns 単一のクライアントと単一のサーバー間の接続数の制限はipレベルであり、デフォルトは60です。0に設定されている場合、制限がないことを意味します。この制限の使用範囲は、指定されたクライアントIPではなく、単一のクライアントマシンと単一のZKサーバー間の接続数の制限のみであり、ZKクラスターの接続数の制限でも、単一のZKでもないことに注意してください。クライアント接続の数は制限されています。
clientPortAddress 複数のネットワークカードを備えたマシンの場合、IPごとに異なるリスニングポートを指定できます。デフォルトでは、すべてのIPがclientPortで指定されたポートをリッスンします。3.3.0の新機能
minSessionTimeoutmaxSessionTimeout セッションタイムアウト時間制限。クライアントによって設定されたタイムアウト時間がこの範囲内にない場合は、最大時間または最小時間に強制的に設定されます。デフォルトのセッションタイムアウトは、2 * tickTime〜20 * tickTimeの範囲です。
fsync.warningthresholdms トランザクションログを出力する際、fsyncメソッドの呼び出しが指定したタイムアウト時間を超えると、警告メッセージがログに出力されます。デフォルトは1000msです。(Javaシステムプロパティ:fsync.warningthresholdms)
autopurge.purgeInterval 上記のように、バージョン3.4.0以降では、ZKはトランザクションログとスナップショットファイルを自動的にクリアする機能を提供します。このパラメーターはクリーニングの頻度を指定します。単位は時間です。1以上の整数を設定する必要があります。デフォルトは0は、自動クリーニング機能が無効であることを意味します。(Javaシステムプロパティなし)
autopurge.snapRetainCount 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。(No Java system property)
electionAlg 在之前的版本中, 这个参数配置是允许我们选择leader选举算法,但是由于在以后的版本中,只会留下一种“TCP-based version of fast leader election”算法,所以这个参数目前看来没有用了
leaderServes 默认情况下,Leader是会接受客户端连接,并提供正常的读写服务。但是,如果你想让Leader专注于集群中机器的协调,那么可以将这个参数设置为no,这样一来,会大大提高写操作的性能。(Java system property: zookeeper. leaderServes)。
server.x=[hostname]:nnnnn[:nnnnn] 这里的x是一个数字,与myid文件中的id是一致的。右边可以配置两个端口,第一个端口用于F和L之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。
group.x=nnnnn[:nnnnn]weight.x=nnnnn 对机器分组和权重设置
zookeeper.DigestAuthenticationProvider.superDigest ZK权限设置相关
forceSync 这个参数确定了是否需要在事务日志提交的时候调用 FileChannel.force来保证数据完全同步到磁盘。(Java system property: zookeeper.forceSync)



上述在zoo.cfg配置文件中,我们进行了相关的日志文件和快照文件路径的配置,如果我们希望里面有文件可以查看的话,这里我们需要再在其中配置一个snapCount参数,这个参数默认为10000,作用上述也有相关介绍,这次我们将其设置为10
ここに画像の説明を挿入
然后我们再将Zookeeper进行重启,上述我们介绍了启动命令,下列是停止、重启等命令

  • 启动ZK服务: ./zkServer.sh start
  • 查看ZK服务状态: ./zkServer.sh status
  • 停止ZK服务: ./zkServer.sh stop
  • 重启ZK服务: ./zkServer.sh restart

我们配置好后,将Zookeeper重启,然后我们可以使用客户端连接上服务端,随便的创建/修改/删除节点等操作(这些操作我们后续会详细介绍),使其生成日志及快照文件,然后我们就可以进入我们配置的文件路径中进行查看了
ここに画像の説明を挿入

上述就是我们zoo.cnf配置文件中的两个非常重要的配置,一个是dataDir,存放的快照数据,一个是dataLogDir,存放的是事务日志文件

这里快照及日志文件我们是无法直接进行查看的,我们需要对其进行相关的格式化
ここに画像の説明を挿入

java -cp /home/zookeeper/zookeeper-3.4.12.jar:/home/zookeeper/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.SnapshotFormatter snapshot.7

ここに画像の説明を挿入



另外对于日志文件也是一样的,我们如果想要进行查看,也是需要进行相应的格式化的
ここに画像の説明を挿入

java -cp /home/zookeeper/zookeeper-3.4.12.jar:/home/zookeeper/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.LogFormatter log.1

ここに画像の説明を挿入

286の元の記事が公開されました Liked12 訪問者10,000以上

おすすめ

転載: blog.csdn.net/newbie0107/article/details/104868023