1. 개요
Kafka는 주로 빅 데이터의 실시간 처리에 사용 되는 발행 / 구독 모델을 기반으로하는 분산 메시지 큐 (Message Queue) 입니다.
메시지 대기열의 기존 애플리케이션 영역은 비동기 처리, 트래픽 피크 감소 및 디커플링입니다.
두 가지 메시지 대기열 모드 :
지점 간 모드 (일대일, 소비자가 적극적으로 데이터를 가져오고 메시지가 수신 된 후 메시지가 지워짐)
발행 / 구독 모델 (일대 다, 소비자가 데이터를 사용한 후 메시지가 지워지지 않음)
2. 설치
압축 해제 후 구성 파일 server.propertities 수정
#broker的全局唯一编号,不能重复,每个节点的id不一样
broker.id=0
#删除topic功能使能
delete.topic.enable=true
#kafka运行日志存放的路径,需要自己创建
log.dirs=/opt/module/kafka/logs
#配置连接Zookeeper集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
환경 변수 구성
$ sudo vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
$ source /etc/profile
3. Kafak 명령
시작 및 종료
#启动
bin/kafka-server-start.sh -daemon config/server.properties
#关闭
bin/kafka-server-stop.sh stop
추가, 삭제, 수정
创建
bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions
1 --topic first
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
删除
bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first
需要server.properties中设置delete.topic.enable=true否则只是标记删除。
查看
查看所有
bin/kafka-topics.sh --zookeeper hadoop102:2181 --list
查看某一个topic
bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe --topic first
修改分区数
bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 6
消费消息
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
--from-beginning:会把主题中以往所有的数据都读取出来。