カフカのクラスタの設定環境と管理

このセクションでは、カフカクラスタ環境の展開を語ります

基本的な概念を紹介し、強化カフカ

1)プロデューサ:メッセージプロデューサ、メッセージは、エンド顧客kafkabrokerであり;
2)消費者:メッセージコンシューマがクライアントkafkabrokerにメッセージを取る;
3)トピック:キューとして理解することができる;
4)コンシューマ・グループ(CG) :これは、ブロードキャスト(すべての消費者に送信された)メッセージに使用されるトピックカフカある
手段(消費者のいずれかに送信された)とユニキャスト。トピックは、CGを複数有していてもよいです。メッセージのコピーのトピック
におけるCGにCGの全てに対して(ない真のコピー、概念的である)が、それぞれの意志だけpartionメッセージ
のGeコンシューマ。あなたが放送をしたい場合は、限り、各消費者は、その上に独立したCGを有しているからです。達成するために
限り、同じCGにおける消費者のすべてのようにユニキャスト。消費者はまた、CGなしに自由にすることによってグループ化することができ
、異なるトピックにメッセージを複数回送信します。

5)ブローカー:カフカサーバーがブローカーです。ブローカーの複数からなるクラスタ。ブローカーは、
トピックの複数を受信することができます。

6)パーティション:スケーラビリティを達成するために、非常に大きなトピックは、複数のブローカー(すなわち、サーバ)に分配されてもよい
トピックはパーティションに分割することができ、各パーティションは、順序付けられたキューです。各メッセージは分割
シーケンシャル番号(オフセット)が割り当てられます。カフカへのメッセージで、その唯一のパーティションを確実にするため
、消費者は、トピックは、(パーティションのうち)配列の全体とは限りません。

パーティションのより多くの数は、ある程度まで、いくつかのパフォーマンス上のオーバーヘッドが大きくなり、より多くのファイルハンドルを開く必要がありますので、カフカが読み書きするファイルに基づいているため、メッセージ処理のスループットを向上させる、となります。
パーティションが多すぎると、バルク書き込みは、実際には、ランダム書き込みになりますので、セグメントは書き込みに多くの時間を記録し、ランダムI / O性能が大幅に今回の権利に影響を与えました。だから、一般的にはカフカは、あまりにも多くのパーティションを持つことはできません。

7)複製因子は、
  コピー数のテーマを設定するために使用されています。各トピックには、それ以外の場合は、テーマを作成するために失敗し、コピーの複数のコピーはコピー数がブローカーの数を超えることはできませんと言うことですクラスタ内の別のブローカーに位置していることができます。

在创建Topic的时候,有两个参数是需要填写的,那就是partions和replication-factor。

8)Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查

検索。たとえば、あなただけのファイルの2048.kafkaを見つけ、2049年に場所を見つけたいです。もちろん、それはthefirstoffset
00000000000.kafkaです。

クラスタ環境を構築

  • 飼育係クラスタ環境を構築
  1. ダウンロードパッケージ

wgetのhttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

  1. 減圧

  2. 設定ディレクトリを作成し、ファイルを変更

[ルート@ es7-1-80 CONF]#猫zoo.cfg
initLimit = 10
syncLimit = 5
DATADIR = /データ/ ZK /データ
CLIENTPORT = 2181
maxClientCnxns = 0
server.1 = 172.16.0.80:2888:3888
server.2 = 172.16.0.91:2888:3888
server.3 = 172.16.0.92:2888:3888

エコー1 >> = /データ/ ZK /データ/ MYID

  1. スタート、サービスの生産基準を開始

    猫/etc/systemd/system/zookeeper.service
    [単位]
    説明= zookeeper.service
    後= network.target

[サービス]
タイプ=フォーク
ExecStart =は/ usr / local /飼育係/ binに/ zkServer.sh開始
ExecStop =は/ usr / local /飼育係/ビン/ zkServer.sh停止
ExecReload =は/ usr / local /飼育係/ binに/ zkServer.sh再起動
[インストール]
WantedBy = multi-user.target

他のノードは、上記のように配置され、起動します

ビュークラスタのステータス

/usr/local/zookeeper/bin/zkServer.sh状況

  • カフカクラスタのセットアップ
  1. ダウンロードパッケージ

-LOカールhttps://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz

  1. 所望の位置まで伸長

  2. 設定ディレクトリを作成し、ファイルを変更

= 0#broker.id
プロセスメッセージ、一般変更する必要がないことは、スレッドのnum.inetwork.threads = 3 #broker最大数
のスレッド、ディスクIOを処理する= 8の##ブローカー番号num.io.threadsは、値を使用するよりも大きくなければなりませんハードディスクの数
socket.send.buffer.bytes = 102400
socket.receive.buffer.bytes = 102400
socket.request.max.bytes = 104857600
log.dirs =は/ usr / local /カフカ/ kafka_logs

各トピックのためのパーティションのnum.partitions = 1つの#番号、トピックをカバーするために作成されるときにトピックに指定されたパラメータを作成する際に指定されていない場合
num.recovery.threads.per.data.dir = 1
offsets.topic.replication。 1 =因子
transaction.state.log.replication.factor。1 =
transaction.state.log.min.isr。1 =
log.retention.hours = 168
log.segment.bytes = 1073741824
log.retention.check.interval.ms = 300000
= 172.16.0.91 zookeeper.connect:2181,172.16.0.80:2181,172.16.0.92:2181
zookeeper.connection.timeout.ms = 6000

  1. スタート、サービスの生産基準を開始

[単位]
DESCRIPTION =アパッチカフカサーバ(ブローカ)
= network.target後
= syslog.target後
後= zookeeper.target

[サービス]
タイプ=フォーク
ユーザー=ルート
グループ=ルート
ExecStart =は/ usr / local /カフカ/ binに/ kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecStop =は/ usr / local /kafka/bin/kafka-server-stop.sh

ExecReload = / binに/殺す-HUP $ MAINPID
KillMode =なし

再起動=オン故障
RestartSec = 5S

[インストール]
WantedBy = multi-user.target

5、環境変数に追加カフカコマンド

輸出KAFKA_HOME =は/ usr / local /カフカ
輸出PATH = $ PATH:$ KAFKA_HOME / binに

、修正broker.id上記のように展開され、他のノード

カフカの外部IPアドレスを設定する
kafka0.10以下
の変更server.propertiesプロファイル
advertised.host.name = XXXX
advertised.port = 9092
kafka0.10以上
のリスナー= PLAINTEXT://0.0.0.0:9093 //バインドすべてのIP
アドバタイズ.listeners = PLAINTEXT://42.159.7.75:9093

  • カフカの一般的な操作

    テーマを作成します。

    ./kafka-topics.sh --zookeeper 172.16.0.80:2181 --create --topic TEST1 --replication因子1 --partitions 3

    トピックの作成では、そこに必要性を満たすために、2つのパラメータがあり、それはpartionsと複製因子です。

    削除のトピック

./kafka-topics.sh --zookeeper 172.16.0.80:2181 --delete --topic TEST1

トピックの一覧を表示します

./kafka-topics.sh --zookeeper 172.16.0.80:2181:2181 --list

トピックを表示ステータス

kafka-topics.sh --zookeeper 172.16.0.80:2181 --describe --topic TEST2
トピック:TEST2 PartitionCount:3 ReplicationFactor:1 Configsに:
トピック:TEST2パーティション:0リーダー:2レプリカ:2 ISR:2
トピック:TEST2パーティション:1リーダー:0レプリカ:0 ISR:0
トピック:TEST2パーティション:2リーダー:1複製:1 ISR:1

変更パーティションのテーマ

./kafka-topics.sh --zookeeper 172.16.0.80:2181 --create --topic TEST3 --replication因子1 --partitions 1

 kafka-topics.sh --zookeeper 172.16.0.80:2181  --alter  --topic test3 --partitions 3

  kafka-topics.sh --zookeeper 172.16.0.80:2181  --describe  --topic test3

トピック:TEST3 PartitionCount:3 ReplicationFactor:1 Configsに:
トピック:TEST3パーティション:0リーダー:1複製:1 ISR:1
トピック:TEST3パーティション:1リーダー:2レプリカ:2 ISR:2
トピック:TEST3パーティション:2リーダー:0レプリカ:0 ISR:0

生産データ

kafka-console-producer.sh --brokerリスト172.16.0.80:9092 --topic TEST4

HI行く
{TEST4 = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient):相関IDが1のメタデータ取得中に[:02 32608 2019年11月26日15] [プロデューサのclientId =コンソール・プロデューサ]エラーWARN
[2019 -11-26 15:02:32713]相関ID 2でメタデータをフェッチしながらプロデューサーのclientId =コンソール・プロデューサ]エラーを警告:{TEST4 = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient)
[2019年11月26日15:02:32820]相関ID 3とメタデータをフェッチしながらプロデューサーのclientId =コンソール・プロデューサ]エラーを警告:{TEST4 = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient)
[2019年11月26日午前15時02: 32927]相関ID 4とメタデータをフェッチしながらプロデューサーのclientId =コンソール・プロデューサ]エラーを警告:{TEST4 = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClien

ソリューション
ポート= 9092
リスナー= PLAINTEXT://172.16.0.92:#9092 IP変更に対応

再生産データ

kafka-console-producer.sh --brokerリスト172.16.0.80:9092 --topic TEST4

こんにちはkafaka

kafka-console-consumer.sh --zookeeper 172.16.0.91:2181 --topic TEST4 --from-始まります

消費データ

kafka-console-consumer.sh --zookeeper 172.16.0.91:2181 --topic TEST4 --from-始まります

リストメインコンシューマ・グループ

カフカと見なされるべきであることを消費者グループの消費者グループは、設計のより多くのハイライトを持っています。消費者グループが、それは何ですか?一つの文章に要約される:消費者グループがあるカフカは、消費者のためのスケーラブルでフォールトトレラントメカニズムを提供します。

/kafka-consumer-groups.sh --bootstrapサーバ172.16.0.80:9092 --list

コンシューマ・グループの新しいバージョンの詳細についてはTESTGROUP

/kafka-consumer-groups.sh --bootstrapサーバ172.16.0.80:9092 --group TESTGROUP --describe

おすすめ

転載: blog.51cto.com/sdsca/2453853