Apache Kafkaは、大量のリアルタイムデータを処理するように設計された人気のある分散メッセージブローカーです。 Kafkaクラスターは、拡張性が高く、フォールトトレラントです。
また、ActiveMQやRabbitMQなどの他のメッセージブローカーと比較して、スループットがはるかに高くなっています。
通常、パブリッシュ/サブスクライブメッセージングシステムとして使用されますが、パブリッシュされたメッセージの永続的なストレージを提供するため、多くの組織がログ集約にも使用しています。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様がApache関連のクエリを実行するのを定期的に支援しています。
これに関連して、Ubuntu20.04にKafkaをインストールして構成する方法を検討します。
UbuntuシステムにApacheKafkaをインストールするにはどうすればいいですか?
このインストールタスクを開始するには、sudo権限を持つrootユーザーとしてサーバーにアクセスする必要があります。
Apache Kafkaでは、Ubuntu20.04マシンにJavaがインストールされている必要があります。
次のコマンドでOSを更新することから始めます:
$ sudo apt update
OSが更新されたら、Javaのインストールに進みます:
$ sudo apt install openjdk-11-jre-headless
次に、次のコマンドを実行して、Javaがシステムに正常にインストールされていることを確認します。
$ java --version
UbuntuにKafkaをダウンロードする方法は?
ここで、KafkaソースをUbuntu20.04にダウンロードする必要があります。 Apache Kafkaの公式Webサイトからダウンロードすることを強くお勧めします:https://kafka.apache.org/downloads
この記事を書いている時点では、最新バージョンは2.7.0です。
次のコマンドでダウンロードできます:
$ cd $HOME
$ wget https://downloads.apache.org/kafka/2.7.0/kafka-2.7.0-src.tgz
次に、/ usr/localディレクトリにkafka-serverという名前の新しいフォルダを作成します。
$ sudo mkdir /usr/local/kafka-server
次に、ダウンロードしたKafkaのソースを/ usr / local/kafka-serverディレクトリに抽出します。
$ sudo tar xf $HOME/kafka-2.7.0-src.tgz -C /usr/local/kafka-server
すでにApacheKafkaバイナリファイルを抽出しているので、次を実行してファイルを一覧表示できます。
$ ls /usr/local/kafka-server/kafka-2.7.0-src/bin/
それでは、KafkaとZookeeperをUbuntu20.04でデーモンとして実行するときが来ました。
これを行うには、KafkaとZookeeperの両方のSystemdユニットファイルを作成する必要があります。
KafkaおよびZookeeper用のSystemdUnitファイルを作成する方法は?
まず、お気に入りのエディタを使用して、次の2つのファイルを作成します。
/etc/systemd/system/zookeeper.service
[Unit]
Description=Apache Zookeeper Server
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/local/kafka-server/kafka-2.7.0-src/bin/zookeeper-server-start.sh /usr/local/kafka-server/kafka-2.7.0-src/config/zookeeper.properties
ExecStop=/usr/local/kafka-server/kafka-2.7.0-src/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
/etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
ExecStart=/usr/local/kafka-server/kafka-2.7.0-src/bin/kafka-server-start.sh /usr/local/kafka-server/kafka-2.7.0-src/config/server.properties
ExecStop=/usr/local/kafka-server/kafka-2.7.0-src/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
変更を適用するには、systemdデーモンをリロードする必要があり、サービスも有効にする必要があります。
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now zookeeper.service
$ sudo systemctl enable --now kafka.service
$ sudo systemctl status kafka zookeeper
UbuntuにApacheKafka(CMAK)用のクラスターマネージャーをインストールするにはどうすればよいですか?
ここでは、ApacheKafkaのClusterManagerの略であるCMAKをインストールします。 CMAKは、Kafkaサービスを管理および監視するためのオープンソースツールです。
もともとはYahooによって開発されました。 CMAKをインストールするには、次のコマンドを実行します。
$ cd $HOME
$ git clone https://github.com/yahoo/CMAK.git
UbuntuでCMAKを構成する方法は?
お気に入りのエディターを使用して、CMAK構成を変更できます。
$ vim ~/CMAK/conf/application.conf
ここでは、Zookeeperがlocalhostであることを構成します。cmak.zkhostsの値をlocalhost:2181として変更しましょう
cmak.zkhostsは28行目にあります。
ここで、アプリケーションをデプロイするためにzipファイルを作成する必要があります。
$ cd ~/CMAK
$ ./sbt clean dist
完了するまでに約1分かかります。
UbuntuでCMAKサービスを開始するには?
私。 〜/ CMAK / target / Universalディレクトリに移動し、zipファイルを抽出します:
$ cd ~/CMAK/target/universal
$ unzip cmak-3.0.0.5.zip
ii。 cmak-3.0.0.5.zipファイルを解凍した後、ディレクトリに移動し、cmakバイナリを実行します。
$ cd cmak-3.0.0.5
$ bin/cmak
デフォルトでは、cmakサービスはポート9000で実行されます。
Webブラウザーを使用して、http://
そのインターフェースに最初にアクセスするとき、利用可能なクラスターはありません。
iii。次に、[クラスターにクラスターを追加]ドロップダウンリストをクリックして、新しいクラスターを追加する必要があります。
iv。ここでは、要求された情報(クラスター名、クラスターZookeeperホスト、Kafkaバージョンなど)をフォームに入力しました。
v。他のオプションをデフォルト値のままにして、[保存]をクリックします。
これで、クラスターが正常に作成されます。
これで、サンプルトピックを作成できます。
vi。 「LinuxAPTTopic」という名前のトピックを作成するとします。
CMAKがまだ実行中であり、新しい端末を起動してから、次のコマンドを実行することを念頭に置いてください。
$ cd /usr/local/kafka-server/kafka-2.7.0-src
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic LinuxAPTTopic
このコマンドは、トピック「LinuxAPTTopic」を作成します。
vii。最後に、クラスタービューに移動し、[トピック]>[リスト]をクリックします。