Kafka<2> 快速入门

官方文档:https://kafka.apachecn.org/quickstart.html

集群部署

  1. 安装kafka,版本:kafka_2.11-2.1.1.tgz

  2. 命令行工具:FinalShell

  3. 核心基础配置

    • broker.id

    • log.dirs

    • zookeeper.connect

#进入文件
cd config
vi server.properties

#修改配置
#broker 的全局唯一编号,不能重复的整数,所以集群中的节点都要改
broker.id=0

#kafka 运行日志存放的路径名,自己决定
log.dirs=kafka-logs

#配置连接 Zookeeper 集群地址
zookeeper.connect=master:2181

集群启动和停止脚本

#! kafka-cc.sh
case $1 in
"start"){
	for i in master node01 node02
	do 
		echo "**************$i started**************"
		ssh $i  "source /etc/profile;/opt/kafka_2.11-2.1.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-2.1.1/config/server.properties"
	done
};;

"stop"){
	for i in master node01 node02
	do 
		echo "**************$i stopped**************"
		ssh $i "source /etc/profile;/opt/kafka_2.11-2.1.1/bin/kafka-server-stop.sh /opt/kafka_2.11-2.1.1/config/server.properties"
	done
};;
esac

启动和停止命令

./bin/kafka-cc.sh start
./bin/kafka-cc.sh stop

操作

启动服务器

#集群启动zk集群——master上写了集群脚本
/bin/zkcc.sh start

    #jps查看进程QuorumPeerMain,但还得查看状态,能看到角色模式:
    #为leader或follower,即正常了说明成功
    /bin/zkServer.sh status

#集群启动kafka——在master写了集群脚本
/bin/kafka-cc.sh start

#jps查看Kafka进程

创建Topic

#注意:master是虚拟机名字
#2181是zookeeper的默认端口号
#replication-factor副本数
#partitions分区数
#first主题名字

#创建主题,副本和分区
./bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic first

#修改分区
kafka-topics.sh --alter --zookeeper master:2181 --topic first --partitions 3

查看主题列表

bin/kafka-topics.sh --list --zookeeper master:2181

 

查看主题详情

bin/kafka-topics.sh --list --zookeeper master:2181

删除主题

bin/kafka-topics.sh --zookeeper master:2181 --delete --topic first

查看topic详情

bin/kafka-topics.sh --describe --topic first --zookeeper master:2181

生产消息

#master:虚拟机名称
#9092是kafka的默认端口号
bin/kafka-console-producer.sh --topic first --broker-list master:9092

消费消息:master节点上发送消息,node01节点上键入一下命令行:

#node01
bin/kafka-console-consumer.sh --topic first --bootstrap-server master:9092

node02上显示所有历史数据:node02消费

#node02
#--from-beginning显示topic的所有历史数据
bin/kafka-console-consumer.sh --topic first --bootstrap-server master:9092 --from-beginning

 

案例实践

Flume-Kafka实时数据测试

任务要求:Flume监控一个文件实时写到Kafka

#exec-kafka.conf
# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
 
# 描述和配置source组件:r1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /mnt/tmp.log
 
# 描述和配置sink组件:k1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = flumetopic
a1.sinks.k1.kafka.bootstrap.servers = master:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.ki.kafka.producer.compression.type = snappy
 
# 描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
 
# 描述和配置source  channel   sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#开启flume
./bin/flume-ng agent -c ./conf/ -f ./job/exec-kafka.conf -n a1 -Dflume.root.logger=INFO,console

FinalShell再打开同节点的新窗口1,找到目录,键入以下:

#kafka中创建主题flumetopic
./bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic flumetopic

#消费主题
./bin/kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic flumetopic

FinalShell再打开同节点的新窗口2 ,找到目录,键入以下:

[root@master ~]# while true
> do
> echo `date`>>/mnt/tmp.log
> sleep 1
> done

此时可以查看到窗口1中的时间会实时输出。

 

下节,继续学习生成者,消费者,消息队列模型,分区分配策略、leader选举机制等一些原理性知识……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值