*****************
首先要安装jdk,zookeeper集群,kafka集群。
******************
启动kafka集群是先要启动zookeeper集群的:
/bigdata/apps/zookeeper-3.4.6/bin/zkServer.sh start
kafka集群的启动:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh -daemon /bigdata/apps/kafka_2.11-0.10.2.1/config/server.properties
kafka集群查看有多少topics:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --list --zookeeper hdp01:2181,hdp02:2181,hdp03:2181
kafka集群创建一个topic:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --create --zookeeper hdp01:2181,hdp02:2181,hdp03:2181 --replication-factor 3 --partitions 3 --topic my-topic
kafka集群创建一个生产者:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-console-producer.sh --broker-list hdp01:9092,hdp02:9092,hdp03:9092 --topic my-topic
kafka集群创建一个消费者:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-console-consumer.sh --bootstrap-server hdp01:9092,hdp02:9092,hdp03:9092 --topic my-topic
查看某个topic信息
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --describe --zookeeper hdp01:2181,hdp02:2181,hdp03:2181 --topic test
kafka集群的关闭:
/bigdata/apps/kafka_2.11-0.10.2.1/bin/kafka-server-stop.sh
-------------------------
kafka能够快速找到消息的原因:
topic是分区的,根据offset在分区中查找。partition是分段的,每个段叫Segment,包括了一个数据文件(log)和一个索引文件(index)。
Kafka的Message存储采用了分区(partition),分段(LogSegment)和稀疏索引这几个手段来达到了高效性。