【入場から放棄までのカフカシリーズ2】カフカクラスターの構築と基本コマンド

以前のブログでは、Kafka 基本的な概念、生産モデルと消費者モデル、および基本的なアーキテクチャについて詳細に理解しています。Kafkaは全体的に理解しています。全体的なフレームワークは、実際には次のアーキテクチャとして理解できます[Partitionパーティションのリーダーとフォロワーは、ブローカーに保存され
ここに画像の説明を挿入
ます]:メッセージが生成された後、メッセージはトピックに基づいてKafkaクラスターに送信され、クラスターがメッセージを管理します。コンシューマークラスターはメッセージをアクティブにプルして消費します[コンシューマーの消費速度はそれ自体で決定でき、存在する場合があります長時間接続ポーリングの無駄、メッセージ全体およびクラスター管理はZookeeperによって実行されます。これらを理解した後、Kafkaクラスターを構築しましょう。コンピューターが1台しかないため、仮想マシン構築を使用して環境を構築します。次に、単一ノードの仮想マシンをデプロイしてkafkaを実行し、次に2つの仮想マシンを複製して1つ形成します分散仮想マシンクラスタ

単一ノード仮想マシンのインストール

私は次の組み合わせを使用して仮想マシンを構築しています:環境を準備するときに、VMware + Centos7 + SecureCRT + AppNodeを使用して仮想マシンを構築および管理することにしました。詳細な構築プロセスはここでは説明しません。他の記事[ディストリビューションタイプクラスタービルド1]仮想マシン構成(VMware + Centos7 + SecureCRT + AppNode)、この記事に従ってシングルノード仮想マシンを構築した後、それに Kafkaをインストールできます。

Kafkaをダウンロードしてインストールする

公式サイトでミラーサイトを見つけて、kafkaの公式サイトから Kafka ダウンロードます。ここでは、清華大学のミラーサイトを選択してKafkaをダウンロードします。

ここに画像の説明を挿入
ここにピットがあることに注意してください。wgetで直接centosにプルし、それを解凍すると、エラーが報告されます。そのため、最初にウィンドウにダウンロードし、次にcentosにアップロードし、AppNode:を介して
ここに画像の説明を挿入
直接解凍するか、コマンドを使用しtar -xvf kafka_2.13-2.6.0.tgzます。解凍が完了すると、確認できます上記のディレクトリに移動します

Zookeeper構成ファイルを変更する

次のパス/kafka/kafka_2.13-2.6.0/config/修改zookeeper.properties構成ファイルを入力します

dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/log
clientPort=2181
maxClientCnxns=0
admin.enableServer=false
tickTime=2000
initLimit=10
syncLimit=5
#设置broker Id的服务地址,这里的012和brokerid保持一致
server.0=192.168.5.101:2888:3888
server.1=192.168.5.102:2888:3888
server.2=192.168.5.103:2888:3888

その中で、ポート2888は飼育係の通信ポートであり、ポート3888は選挙ポートです。次に/tmp/zookeeperdataDirのディレクトリ入力してファイルmyid を作成し、server.idの特定の値(kafkaのbroker.idと一致することをお勧めします)
ここに画像の説明を挿入
を書き込み、brokeridと一致するシリアル番号とmyidのローカルIPの対応するサーバーに入力します。

ここに画像の説明を挿入

Kafka構成ファイルを変更する

次のパス/kafka/kafka_2.13-2.6.0/config/入力し、server.propertiesの構成を変更します。

broker.id=0
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data

仮想マシンクラスターのクローンを作成する

クラスターのクローンを作成して管理するには、他のブログを参照してください- [分散クラスターの構築2]仮想マシンのクローンを作成してクラスターを構成します。3つのマシンが分散クラスター構成に使用されます。構成が完了すると、クラスターが正常に動作していることがわかります。
ここに画像の説明を挿入
もちろんクローン作成が完了したら、我々は変更する必要がある設定ファイルを

マシンごとにmyidファイルを作成する

dataDirディレクトリ/tmp/zookeeper入り、ファイルmyidを作成し、server.idの特定の値を書き込み、102と103のmyidファイルにそれぞれ1と2を書き込み、それを各マシンのserver.idおよびbrokeridと一致させます。

各マシンのKafka構成を変更する

各マシンの次のパスを入力し、/kafka/kafka_2.13-2.6.0/config/server.propertiesの構成を変更します

broker.id=0
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data
broker.id=1
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data
broker.id=2
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data

kafkaコマンドを実行する

変更が完了したら、Kafkaを操作して実装します。この時点で、SecureCRTを使用して3つのセッションを同時に開きます。3つのマシンでデーモンとして個別に操作します。

飼育係とカフカを開始

启动zookeeper     bin/zookeeper-server-start.sh  -daemon  config/zookeeper.properties   
启动kafka集群     bin/kafka-server-start.sh      -daemon  config/server.properties

ここに画像の説明を挿入

トピックの作成、作成したトピックの表示、トピックの詳細の表示

创建topic       bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --create --replication-factor 3 --partitions 1 --topic tml-second
查看topic列表   bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --list
查看topic详情   bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --describe --topic tml-second

ここに画像の説明を挿入
コピーの数はクラスターマシンの数を超えることはできません。同じマシンに同じパーティションの2つのコピーが表示されると、次のようにパーティションの効果が失われます。
ここに画像の説明を挿入

詳細を表示すると、最初の行にすべてのパーティションの概要が表示されます。下の各行には、1つのパーティションの情報が表示されます。パーティションが1つしかない場合は、1行だけが表示されます。

  • リーダーは、指定されたすべてのパーティティションの中で読み取りと書き込みを行うノードです。各ノードがリーダーになる場合があります。ここでは、リーダーは2、つまり102マシンです。
  • レプリカは、ノードがリーダーであるかどうか、ノードが生きているかどうかに関係なく、指定されたパーティションのすべてのレプリカが格納されているノードのノードリストを表示します。ここに3つのマシン0、1、2があります。それぞれ101、102、103に対応。
  • isrのコピーが同期されたノードのセット。このセットのすべてのノードはライブ状態にあり、リーダーと同期されています。3台のマシン0、1、2があります。それぞれ101、102、103に対応します。これは、3台のマシンすべてがクラスター内でオフラインになっていないことを意味します。

複雑なケースを使用して、その配布メカニズムを決定しましょう。
ここに画像の説明を挿入

メッセージの送信、メッセージの消費

发送消息:bin/kafka-console-producer.sh --broker-list  192.168.5.101:9092 --topic tml-second
消费消息:bin/kafka-console-consumer.sh  --bootstrap-server 192.168.5.102:9092 --from-beginning --topic tml-second
消费同一个组的消息:bin/kafka-console-consumer.sh  --bootstrap-server 192.168.5.102:9092  --topic tml-second --consumer.config config/consumer.properties 

ここに画像の説明を挿入
ここに画像の説明を挿入

トピックを削除

 bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --delete --topic tml-kafka

ここに画像の説明を挿入

kafkaサービスをシャットダウンします。

bin/kafka-server-stop.sh stop

ここに画像の説明を挿入
ここに画像の説明を挿入

このブログは難しいプロセスです。Linuxはそれほど大きくないため、クラスターの構成後、クラスターは常に起動に失敗します。zookeeperとkafkaがデーモンプロセスとして起動されていないことを確認するのに2日かかりました。CTRL+ Cでプロセスが強制終了され、フォローアップが行われました。 Kafkaは常に飼育係に接続できませんが、最終的に分散クラスターが構築され、別の村ができます!

おすすめ

転載: blog.csdn.net/sinat_33087001/article/details/108230440