CentOSにCMAKを使用してApache Kafkaをインストールする方法
CentOSにCMAKを使用してApache Kafkaをインストールする方法
このページで
- 前提条件
- 始めに
- Javaをインストールする
- カフカをダウンロード
- KafkaとZookeeperのためのSystemdファイルを作成する
- CMAKをインストールして構成する
- CMAKサービスを開始する
- SELinuxとファイアウォールを設定する
- CMAKウェブUIにアクセスする
- Kafkaに最初のトピックを追加する
- 結論
Apache Kafkaは、ストリーミング分析、データ統合、およびミッションクリティカルなアプリケーションに使用される無料かつオープンソースのストリーミングプラットフォームです。ActiveMQやRabbitMQと比較して、Kafkaは優れたスループット、組み込みのパーティショニング、レプリケーション、および障害耐性を持っています。Kafkaは、大量のリアルタイム情報を効果的に処理できる分散メッセージエージェントです。
CMAKは「クラスターマネージャー」としても知られ、Yahooによって開発されたKafkaクラスタの管理に使用されます。CMAKを使用すると、複数のクラスタを管理し、トピック、コンシューマー、オフセット、ブローカー、レプリカの分配、パーティションの分配など、クラスタの状態を検査することができます。
このチュートリアルでは、CentOS 8サーバーにCMAKを使用してApache Kafkaストリーミングプラットフォームをインストールする方法を示します。
前提条件
- CentOS 8を実行しているサーバー。
- サーバーにルートパスワードが設定されています。
始めに
まず、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用してすべてを更新できます:
dnf update -yすべてのパッケージが更新されたら、次のコマンドで他の必要な依存関係をインストールしてください。
dnf install git unzip -y完了したら、次のステップに進むことができます。
Javaをインストールする
KafkaはJavaに基づいているため、サーバーにJavaをインストールする必要があります。インストールされていない場合は、次のコマンドでインストールできます:
dnf install java-11-openjdk-devel -yJavaがインストールされたら、次のコマンドを使用してインストールされたJavaのバージョンを確認できます。
java --version次の出力を得るべきです:
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-CentOS-0centos8)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-CentOS-0centos8, mixed mode, sharing)
完了したら、次のステップに進むことができます。
カフカをダウンロード
Kafkaをダウンロードする前に、Kafkaを保存するディレクトリを作成してください。以下のコマンドで作成できます。
mkdir /usr/local/kafka-server次に、ディレクトリをkafka-serverに変更し、以下のコマンドを使用してKafkaの最新バージョンをダウンロードします:
cd /usr/local/kafka-server
wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgzダウンロードが完了したら、以下のコマンドでダウンロードしたファイルを展開します:
tar -xvzf kafka_2.13-2.6.0.tgz --strip 1完了したら、次のステップに進むことができます。
KafkaとZookeeperのためのSystemdファイルを作成する
次に、ZookeeperとKafkaサービスを管理するためのsystemdサービスファイルを作成する必要があります。
まず、次のコマンドを使用してZookeeperサービスファイルを作成します:
nano /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/bin/zookeeper-server-start.sh /usr/local/kafka-server/config/zookeeper.properties
ExecStop=/usr/local/kafka-server/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
作業が完了したら、ファイルを保存して閉じてください。
次に、以下のコマンドを使用してKafkaサービスファイルを作成します:
nano /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/jre-11-openjdk"
ExecStart=/usr/local/kafka-server/bin/kafka-server-start.sh /usr/local/kafka-server/config/server.properties
ExecStop=/usr/local/kafka-server/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じたら、次のコマンドでsystemdデーモンを再読み込みします:
systemctl daemon-reload次に、両方のサービスを起動し、次のコマンドを使って自動起動を有効にします:
systemctl enable --now zookeeper
systemctl enable --now kafka
systemctl start zookeeper
systemctl start kafka次に、以下のコマンドを使用して両方のサービスの状態を確認してください:
systemctl status zookeeper kafka次の出力が表示されるはずです:
? zookeeper.service - Apache Zookeeper Server
Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:42 EDT; 30s ago
Main PID: 26722 (java)
Tasks: 31 (limit: 12523)
Memory: 68.8M
CGroup: /system.slice/zookeeper.service
??26722 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCIn>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,326] INFO maxSessionTimeout set to 60000 (org.apache.zookeeper.>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,327] INFO Created server with tickTime 3000 minSessionTimeout 6>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,344] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactor>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,348] INFO Configuring NIO connection handler with 10s sessionle>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,355] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zook>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,391] INFO zookeeper.snapshotSizeFactor = 0.33 (org.apache.zooke>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,397] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,401] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,431] INFO Using checkIntervalMs=60000 maxPerMinute=10000 (org.a>
Aug 29 08:48:53 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:53,030] INFO Creating new log file: log.1 (org.apache.zookeeper.se>
? kafka.service - Apache Kafka Server
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:50 EDT; 22s ago
Docs: http://kafka.apache.org/documentation.html
Main PID: 27100 (java)
Tasks: 66 (limit: 12523)
Memory: 306.4M
CGroup: /system.slice/kafka.service
??27100 /usr/lib/jvm/jre-11-openjdk/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancy>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,733] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,747] INFO [ExpirationReaper-0-AlterAcls]: Starting (kafka.server.De>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,846] INFO [/config/changes-event-process-thread]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,877] INFO [SocketServer brokerId=0] Starting socket server acceptor>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,236] INFO [SocketServer brokerId=0] Started data-plane acceptor and>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,237] INFO [SocketServer brokerId=0] Started socket server acceptors>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka version: 2.6.0 (org.apache.kafka.common.utils.AppIn>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka commitId: 62abe01bee039651 (org.apache.kafka.common>
CMAKをインストールして構成する
次に、Apache Kafkaクラスタを管理するためにCMAKをインストールする必要があります。以下のコマンドを使用してGitリポジトリからダウンロードできます。
cd /root
git clone https://github.com/yahoo/CMAK.gitダウンロードが完了したら、application.confファイルを編集し、zookeeperホストを定義する必要があります。
nano ~/CMAK/conf/application.conf
次の行を変更してください:
cmak.zkhosts="localhost:2181"
作業が終わったら、ファイルを保存して閉じてください。その後、アプリケーションを展開するためのzipファイルを作成します。
cd ~/CMAK/
./sbt clean dist次の出力が表示されるはずです:
model contains 640 documentable templates
[info] Main Scala API documentation successful.
[info] LESS compiling on 1 source(s)
[success] All package validations passed
[info] Your package is ready in /root/CMAK/target/universal/cmak-3.0.0.5.zip
[success] Total time: 150 s (02:30), completed 29-Aug-2020, 8:55:40 AM
次に、前のステップで作成された zip ファイルを次のコマンドで解凍します:
cd ~/CMAK/target/universal
unzip cmak-3.0.0.5.zip完了したら、次のステップに進むことができます。
CMAKサービスを開始する
今、ディレクトリを~/CMAK/target/universal/cmak-3.0.0.5に変更し、次のコマンドを使用してCMAKサービスを起動します:
cd ~/CMAK/target/universal/cmak-3.0.0.5
bin/cmakこの時点で、CMAKが開始され、ポート9000で待機しています。
SELinuxとファイアウォールを設定する
デフォルトでは、CentOS 8でSELinuxが有効になっています。したがって、CMAKのためにSELinuxを設定する必要があります。次のコマンドで設定できます。
chcon -t httpd_sys_rw_content_t ~/CMAK/target/universal/cmak-3.0.0.5 -R
setsebool -P httpd_can_network_connect 1次に、firewalldでポート9000を許可する必要があります。次のコマンドで実行できます:
firewall-cmd --permanent --zone public --add-port 9000/tcp
firewall-cmd --reload完了したら、次のステップに進むことができます。
CMAKウェブUIにアクセスする
今、ウェブブラウザを開き、URL http://your-server-ip:9000 を使用して CMAK にアクセスしてください。次のページが表示されるはずです:
上記の画面では、利用可能なクラスターがないことがわかるはずです。ですから、最初に新しいクラスターを作成する必要があります。
「クラスター」をクリック => 「クラスターを追加」をクリックします。次の画面が表示されるはずです:
クラスタ名、ZooKeeperホスト、その他必要な情報を提供し、保存ボタンをクリックしてください。次の画面が表示されるはずです:
完了したら、次のステップに進むことができます。
Kafkaに最初のトピックを追加する
次に、機能をテストするためにKafkaにトピックを作成する必要があります。そのためには、別のターミナルを開き、ディレクトリをkafka-serverに変更し、以下のコマンドを実行してトピック名とレプリケーションファクターを指定して新しいトピックを作成します:
cd /usr/local/kafka-server
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic MyNewTopicさて、CMAKダッシュボードに移動し、トピックをクリックしてください。次の画面に、以前に作成したトピックが表示されるはずです:
トピック 番号をクリックしてください。次の画面に新しく作成したトピックが表示されるはずです:
次に、トピック名をクリックしてください。次の画面にトピックに関するすべての情報が表示されるはずです:
結論
おめでとうございます!あなたはCentOS 8サーバーにApache KafkaとCMAKを無事にインストールしました。これでCMAKの機能を探索し始めることができます。質問があれば遠慮なくお尋ねください。






