Kafka依赖于zookeeper,因此先配置zookeeeper。
/opt/bigdata/zookeeper/conf/zoo.cfg
dataDir=/data/zookeeper
sudo chown -R bigdata:bigdata /data/zookeeper
server.1=0.0.0.0:2888:3888
server.2=bigdata-node2:2888:3888
server.3=bigdata-node3:2888:3888
0.0.0.0:xxxx:xxxx
bigdata-nodex:xxxx:xxxx
sudo vim /data/zookeeper/myid
bin/zkServer.sh start
运行jps,出现以下信息表示成功启动zookeeper。 运行bin/zkServer.sh status查看当前虚拟机是leader还是follower 现在只有node2(leader)对外提供服务,如果使用kill -9 进程号把node2的服务干掉,那么node1或者node3会顶上来作为 新的leader 对外提供服务,这就是分布式系统。
jps
bin/zkServer.sh status
leader
follower
node2(leader)
kill -9 进程号
node2
node1
node3
新的leader
bin/zkCli.sh -server bigdata-node1:2181 交互命令
bin/zkCli.sh -server bigdata-node1:2181
在node2中创建一个键值对test: sample,node1和node3都会更新。
test: sample
sudo vim config/server.properties
broker.id
listeners
log.dirs
zookeeper.connect
后台启动:nohup bin/kafka-server-start.sh config/server.properties &
nohup bin/kafka-server-start.sh config/server.properties &
kafka-topic.sh --create
指定副本、分区、topic
服务器无所谓
bin/kafka-topics.sh --create --bootstrap-server bigdata-node1:9092 --replication-factor 3 --partitions 1 --topic hello
kafka-topics.sh --describe
指定队列名
bin/kafka-topics.sh --describe --bootstrap-server bigdata-node1:9092 --topic hello
bin/kafka-topics.sh --list --bootstrap-server bigdata-node1:9092
bin/kafka-topics.sh --delete --bootstrap-server bigdata-node2:9092 --topic hello
向broker生产数据的客户端:向node2节点生产数据的node1客户端节点被称为生产者
bin/kafka-console-producer.sh --bootstrap-server bigdata-node2:9092 --topic hello
从broker取数据的客户端:从node2节点取数据的node3节点被称为消费者
bin/kafka-console-consumer.sh --bootstrap-server bigdata-node2:9092 --from-beginning --topic firstDay