カフカは、80-100M / sのためのプロセスメッセージ、次のインストールレコードそれ、LinuxのバージョンCentos6に能力RabbitMQのメッセージングミドルウェアよりも強力です。
解凍アーカイブ
直接抽出。
[hadoop01 /ホーム/ソフトウェア@ルート]#タール -zxvf kafka_2。11 - 1.0。0の.tgz
変更server.properties
(1)指定されたブローカーの数は、一意の整数になるように、ブローカーは、ブローカー、カフカノードに代わってブローカーです。
(2)は、ローカライズされたデータカフカの位置を特定します
(3)カフカZooKeeperのノードに登録され、ノードが構成されなければならない飼育係
#IDブローカーの。これは、一意の整数に設定する必要がありますため、各ブローカー。 ブローカ。ID = 0 #コンマは下のディレクトリのリスト区切りのログファイルを保存すると log.dirs = /ホーム/ソフトウェア/ kafka- 2 / kafka- ログ #飼育係の接続文字列(ZooKeeperのドキュメントを参照するために詳細)。 ポートのペア、各々がZKに対応する:#これはカンマで区切られたホストであります #サーバー。例えば" 127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002 " 。 #また、オプションで追加することができたchroot 文字列を指定したURLへ #ルートディレクトリのためのすべてのカフカznodes。 zookeeper.connect = hadoop01:2181、hadoop02:2181、hadoop03:2181
他のノードに分散
新しく構成されたカフカは、二つの他のノードに分配され、それぞれ、ブローカ1及び2を変更し、server.propertiesファイルを修正します。
ノード#に分散2 [ルート@ hadoop01 /ホーム/ソフトウェア]#scpコマンド -r kafka- 2 / ルート@ hadoop02:$ PWD #ノードに配布3 [ルート@ hadoop01 /ホーム/ソフトウェア]#scpコマンド -r kafka- 2 /ルート@ hadoop03:$ PWD
初期の経験を使用カフカ
配布が完了すると、あなたはそれを行う以下、カフカをクリック開始することができます。
ブローカー(1)ノード1を起動し、単に変更したコンフィギュレーションファイルをロードする必要があります。
[hadoop01 /ホーム/ソフトウェア/ kafka- @ルート2#/ binに] SHカフカサーバスタート。SHの ../config/server.properties
正常に起動。
(2)リモート接続ウィンドウの再開、テーマのトピックを作成し、そのディレクトリを表示どこカフカ・ログの下で。
[ルート@ hadoop01 /ホーム/ソフトウェア/ kafka- 2 /ビン]#shのカフカ-トピック。SH --create --zookeeper hadoop01:2181 --replication-ファクター1 --partitions 1 - トピックサッカー 作成されたトピック「サッカー」。 [ルート@ hadoop01 /ホーム/ソフトウェア/ kafka- 2 /ビン]#shのカフカ-トピック。SH --create --zookeeper hadoop01:2181 --replicationファクター1 --partitions 2 - 話題の音楽 作成されたトピック「音楽」。
あなたは音楽が設定されている成功したディレクトリの話題よりサッカーと話題のフォルダの音楽を、作成した後、2つのパーティションには、2つのフォルダがあります。
(3)ノード2はまた、ブローカーを開始し、ノード1上に再度トピックを作成します。
ノード2は、ブローカーを開始します。
[hadoop02 /ホーム/ソフトウェア/ kafka- @ルート2#/ binに] SHカフカサーバスタート。SHの ../config/server.properties
パーティション2を指定し、再び話題ノード1を作成します。
[ルート@ hadoop01 /ホーム/ソフトウェア/ kafka- 2 /ビン]#shのカフカ-トピック。SH --create --zookeeper hadoop01:2181 --replicationファクター1 --partitions 2 - 話題の本 作成されたトピック「ブック」。
作成したら、我々は2つのブローカー対応カフカ-logsディレクトリに分布する2つのパーティションを見つけました。
本-0のノードでパーティション1。
ブック-1パーティションノード2。
複数のパーティショントピックを指定した場合、このパーティションのトピックが均等に複数のノードに分散され、パーティションは、ストレージノード内のデータの均一な分布を可能にすることです。
(4)可以使用如下命令查看刚才创建的topic,需连接zookeeper获取信息。
# 列出刚创建的3个topic
[root@hadoop01 /home/software/kafka-2/bin]# sh kafka-topics.sh --list --zookeeper hadoop01:2181 book football music
(5)使用如下命令删除topic,也需连接zookeeper。
[root@hadoop01 /home/software/kafka-2/bin]# sh kafka-topics.sh --delete --zookeeper hadoop01:2181 --topic music Topic music is marked for deletion.
# 设置delete.topic.enable为true,则为立即删除 Note: This will have no impact if delete.topic.enable is not set to true.
删除完后,不会立即删除topic,只是先标记为删除,默认1分钟后会删除,想修改为立即删除需在server.properties中配置delete.topic.enable为true。
(6) 副本数目不能超过节点数目,上面开启了2个broker,如果设置副本数为3会提示报错。另外副本是以topic为单位来复制的。
[root@hadoop01 /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 3 --partitions 2 --topic replication # 报错提示不能超过节点数
Error while executing topic command : Replication factor: 3 larger than available brokers: 2. [2019-12-30 21:11:05,625] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 2. (kafka.admin.TopicCommand$) You have new mail in /var/spool/mail/root
# 修改副本数为2后ok [root@hadoop01 /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 2 --partitions 2 --topic replication Created topic "replication".
节点1和节点2上均有topic目录,并有2个分区。
节点1
节点2
(7)消息的生产端和消费端
生产端,--broker-list为获取节点的信息,后面配置的9092为kafka端口号,发送消息最后还需要指定主题。
[root@hadoop01 /home/software/kafka-2/bin]# sh kafka-console-producer.sh --broker-list hadoop01:9092 --topic football >hello buddy , i am football king messi
消费端,直接连接zookeeper,指定好主题就可以接收消息了。
[root@hadoop01 /home/software/kafka-2/bin]# sh kafka-console-consumer.sh --zookeeper hadoop01:2181 --topic football Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper]. hello buddy , i am football king messi
以上就是kafka安装和使用初体验,记录一下后面使用。