LoginSignup
2
0

More than 5 years have passed since last update.

Oracle Cloud Infrastructure環境でKafkaを動かしてみる

Last updated at Posted at 2018-11-21

はじめに

Oracle Cloud Infrastructure上でKafkaを使用するには、いくつかの選択肢があります。

後者の場合、Terraformスクリプトで事前定義済みの構成を簡単にdeploy する方法があります。が、今回は使用できるCloudリソース(VM数)の都合で、1台のCompute Node上に手動インストールしたものを利用しました。

環境

  • Oracle Cloud Infrastructure 上 の Computeインスタンス (VM Instance)
  • OS: CentOS 7
  • Private IPアドレス:10.0.1.3 とする
    • Oracle Cloud Infrastructure 環境で Computeインスタンスを作成すると、VCN(仮想ネットワーク)内で使用するPrivate IPアドレスと、グローバルにアクセス可能なPublic IPアドレスが付与されます

インストール内容

  • Confluent社が配布するディストリビューション(Confluent Platform)のOSS版
    • confluent-platform-oss-2.11
  • rootユーザで rpmインストール
  • Kafkaの起動停止は confluentユーザで行う

インストール

rootで実行

# rpm --import http://packages.confluent.io/rpm/3.2/archive.key

# cat /etc/yum.repos.d/confluent.repo
[Confluent.dist]
name=Confluent repository (dist)
baseurl=http://packages.confluent.io/rpm/3.2/7
gpgcheck=1
gpgkey=http://packages.confluent.io/rpm/3.2/archive.key
enabled=1

[Confluent]
name=Confluent repository
baseurl=http://packages.confluent.io/rpm/3.2
gpgcheck=1
gpgkey=http://packages.confluent.io/rpm/3.2/archive.key
enabled=1

# yum clean all
# yum install confluent-platform-oss-2.11

ユーザとディレクトリの作成

# mkdir /var/lib/zookeeper
# mkdir /var/lib/kafka <== 今回はすでに存在していた
# chmod a+w /var/lib/zookeeper (乱暴だが一旦コレで)
# chmod a+w /var/lib/kafka (同上)
# adduser confluent
# passwd confluent

設定ファイルの編集(rootで)

OCI上の別のComputeと通信できるよう、IPアドレスを設定する。(オリジナルの設定ファイルではlocalhostでのみ通信可能)

それぞれ設定ファイルを編集。以下のエントリを探してlocalhost指定ではなくPrivate IPアドレスを指定するよう変更する。

  • 後でKafka Connectを動かすので、ここではKafka Connect用の設定ファイルも一緒に編集している。(/etc/kafka/connect-distributed.properties)
/etc/kafka/server.properties
listeners=PLAINTEXT://10.0.1.3:9092
/etc/kafka/connect-distributed.properties
bootstrap.servers=10.0.1.3:9092

起動

confluentユーザで実施。zookeeper, kafka server, kafka connectorを順に起動。

  • 後でKafka Connectを動かすので、ここでは schema-registry と Kafka Connect(connect-distributed) も一緒に起動している。
$ /usr/bin/zookeeper-server-start /etc/kafka/zookeeper.properties
$ /usr/bin/kafka-server-start /etc/kafka/server.properties
$ /usr/bin/schema-registry-start /etc/schema-registry/schema-registry.properties
$ connect-distributed /etc/kafka/connect-distributed.properties

Kafkaを動かしてみる

TOPICの作成 (TOPIC名:mytest1とする)

$ kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytest1

Consumerの起動

$ kafka-console-consumer --bootstrap-server 10.0.1.3:9092 --topic mytest1

Producerの起動

$ kafka-console-producer --broker-list 10.0.1.3:9092 --topic mytest1

Producer側のコンソールに何か入力すると、Consumer側のコンソールに同じ文字列が表示される。
ここでは、「hello world!」と入力。

consumer側(起動したコンソール):

$ kafka-console-consumer --bootstrap-server 10.0.1.3:9092 --topic mytest1
hello world! <-- Producer側から投入したメッセージが表示される

(Optional): VNCのインストール

作業効率化目的でVNCをインストールし起動

# yum groupinstall "Server with GUI"
# yum install vnc-server 

$ vncserver :1

(Optional): PORTの開放とFirewall設定

リモートマシンからのTOPICへの投入ができるよう設定する。具体的には、Oracle CloudのVCN(仮想ネットワーク)のPORT開放と、VMインスタンスのFirewall設定を行う。

設定方法はこちら
※PORT 9092と5901に読み替えて実施。(Kafka:9092, VNC:5901)

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0