Linux 戦闘 - Kafka クラスターのインストールとデプロイメント

Kafka クラスターのインストールとデプロイメント

導入

Kafka は分布式的、去中心化的、高吞吐低延迟、订阅模式高度なメッセージ キュー システムです。

RabbitMQ と同様、Kafka もメッセージ キューです。ただし、RabbitMQ はメッセージ遅延とフォールト トレランスに重点を置いているため、主にバックエンド システムで使用されます。

Kafka はデータ スループットに重点を置いているため、主にビッグ データ システムで使用されます。

Kafka のほとんどは分散 (クラスター) モードで実行されます。ここでは、3 台のサーバーを使用して Kafka クラスターのインストールとデプロイメントを完了します。

インストール

  1. JDK および Zookeeper サービスがインストールおよびデプロイされていることを確認してください

    JDKの設定

    クラスターの準備

    Zookeeper のインストールと展開

    Kafka の動作は JDK 環境と Zookeeper に依存します。JDK 環境と Zookeeper がすでにあることを確認してください。

  2. 【node1の操作】Kafkaのインストールパッケージをダウンロードし、アップロードします。

    # 下载安装包
    wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz
    
  3. 【node1の動作】解凍

    mkdir -p /export/server			# 此文件夹如果不存在需先创建
    
    # 解压
    tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/
    
    # 创建软链接
    ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
    
  4. 【node1の操作】 Kafkaディレクトリ配下のconfigディレクトリ内のserver.propertiesファイルを変更します。

    cd /export/server/kafka/config
    
    vim server.properties 
    # 指定broker的id
    broker.id=1
    # 指定 kafka的绑定监听的地址
    listeners=PLAINTEXT://node1:9092
    # 指定Kafka数据的位置
    log.dirs=/export/server/kafka/data
    # 指定Zookeeper的三个节点
    zookeeper.connect=node1:2181,node2:2181,node3:2181
    
  5. 【node1の操作】node1のkafkaをnode2とnode3にコピー

    cd /export/server
    
    # 复制到node2同名文件夹
    scp -r kafka_2.12-2.4.1 node2:$PWD
    # 复制到node3同名文件夹
    scp -r kafka_2.12-2.4.1 node3:$PWD
    
  6. 【node2での動作】

    # 创建软链接
    ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
    
    cd /export/server/kafka/config
    vim server.properties 
    # 指定broker的id
    broker.id=2
    # 指定 kafka的绑定监听的地址
    listeners=PLAINTEXT://node2:9092
    # 指定Kafka数据的位置
    log.dirs=/export/server/kafka/data
    # 指定Zookeeper的三个节点
    zookeeper.connect=node1:2181,node2:2181,node3:2181
    
  7. 【node3での動作】

    # 创建软链接
    ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
    
    cd /export/server/kafka/config
    vim server.properties 
    # 指定broker的id
    broker.id=3
    # 指定 kafka的绑定监听的地址
    listeners=PLAINTEXT://node3:9092
    # 指定Kafka数据的位置
    log.dirs=/export/server/kafka/data
    # 指定Zookeeper的三个节点
    zookeeper.connect=node1:2181,node2:2181,node3:2181
    
  8. カフカを開始します

    # 请先确保Zookeeper已经启动了
    
    # 方式1:【前台启动】分别在node1、2、3上执行如下语句
    /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties
    
    # 方式2:【后台启动】分别在node1、2、3上执行如下语句
    nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1 >> /export/server/kafka/kafka-server.log &
    
  9. Kafka が開始されていることを確認します (戻り値に Kafka があればよいだけです)

    # 在每一台服务器执行
    jps 或  jps | grep Kafka
    

Kafkaが正常に使えるかテストする

  1. テスト対象を作成する
# 在node1执行,在消息队列中创建一个主题
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 3 --topic test
  1. テストを実行するには、FinalShell で 2 つのノードのターミナル ページを開いてください。
# 打开一个终端页面,启动一个模拟的数据生产者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topic test
# 再打开一个新的终端页面,在启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning
#在第一个终端输入内容,第二个终端就能收到

おすすめ

転載: blog.csdn.net/qq_41954181/article/details/129992608