canal 03 (共8章)

部署 Kafka
1 下载
Kafka 版本选择:
Flume 对 Kafka 版本的要求:
http://flume.apache.org/FlumeUserGuide.html#kafka-sink
Spark 对 Kafka 版本的要求:
http://spark.apache.org/docs/2.0/structured-streaming-kafka-integration.html
Kafka 版本下载:
所有版本下载地址:http://kafka.apache.org/downloads
这里选择下载 kafka_2.11-0.10.2.2.tgz 版本,百度云上,并上传至主节点 app 目录下。
2 解压
使用如下命令解压 Kafka 安装包:
tar -zxvf kafka_2.11-0.10.2.2.tgz
删除 Kafka 安装包:
rm -rf kafka_2.11-0.10.2.2.tgz
ln -s kafka_2* kafka

3 修改配置文件
1.修改 zookeeper.properties ,cd kafka/config
$ vi zookeeper.properties
#kafka数据存储路径与 Zookeeper 配置文件zoo.cfg保持一致
dataDir=/home/hadoop/data/zookeeper/zkdata

2.修改 consumer.properties
$ vi consumer.properties
#配置 Zookeeper 集群连接地址
zookeeper.connect=cdh01:2181,cdh02:2181,cdh03:2181

3.修改 producer.properties
$ vi producer.properties
#修改 kafka 集群配置地址(0.10) 用这个
bootstrap.servers=cdh01:9092,cdh02:9092,cdh03:9092
#修改 kafka 集群配置地址(0.8) 这个是老版本
metadata.broker.list=cdh01:9092,cdh02:9092,cdh03:9092

4.修改 server.properties
$ vi server.properties
#配置 Zookeeper 集群地址
zookeeper.connect=cdh01:2181,cdh02:2181,cdh03:2181/kafka1.0
#存储日志文件目录
log.dirs=/home/hadoop/data/kafka-logs

4 Kafka 安装目录同步
通过集群分发脚本将 kafka 整个安装目录分发到其他节点
$ deploy.sh kafka_2.11-0.10.2.2 /home/hadoop/app/ slave
5 再次修改 server.properties
在各个节点分别修改 server.properties

#修改 cdh01 节点
broker.id=1
#修改 cdh02 节点
broker.id=2
ln -s kafka_2* kafka

#修改 cdh03 节点
broker.id=3
ln -s kafka_2* kafka

6 创建日志目录
在各个节点分别创建日志目录:
runRemoteCmd.sh “mkdir /home/hadoop/data/kafka-logs” all

7.Kafka 集群启动与测试
1.启动 Zookeeper 集群
$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” all
2.启动 Kafka 集群 ,每个节点都要启动
runRemoteCmd.sh "/home/hadoop/app/kafka/bin/kafka-server-start.sh /home/hadoop/app/kafka/config/server.properties & " all

3.查看 topic 列表
查 看 topic 列 表 ( 如 果 配 了 根 目 录 , Zookeeper 路 径 需 要 加 上 root 目 录 , 例 如localhost:2181/kafka1.0)
bin/kafka-topics.sh --zookeeper localhost:2181/kafka1.0 --list
此时结果为空

4.创建 topic ,3个节点,后面都指定3
bin/kafka-topics.sh --zookeeper localhost:2181/kafka1.0 --create --topic test --replication-factor 3 --partitions 3
5.查看 topic 详情
bin/kafka-topics.sh --zookeeper localhost:2181/kafka1.0 --describe --topic test

8.topic 数据发送与消费
1.新 api 使用
cdh02 使用自带脚本消费 topic 数据
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
cdh01 使用自带脚本向 topic 发送数据
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

图解:这里输入,在前面的linux可以看到有同样的信息输出,表示消费数据成功

cdh03 使用自带脚本消费 topic 数据(此时消费最新数据,前面的没有)
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
cdh03 使用自带脚本消费 topic 数据(从头消费数据)(展示顺序是相反的)
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

查看特定 consumer group 详情,有多少个消费者连进来,各自有个编号
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --list

查看 topic 每个 partition 数据消费情况
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --group xxx --describe
参数说明:
Group 消费者组
TOPIC:曾经消费或正在消费的 topic
PARTITION:分区编号
CURRENT-OFFSET:consumer group 最后一次提交的 offset
LOG-END-OFFSET:最后提交的生产消息 offset
LAG:消费 offset 与生产 offset 之间的差值
CONSUMER-ID:当前消费 topic-partition 的 group 成员 id
HOST:消费节点的 ip 地址
CLIENT-ID:客户端 id
xxx表示上面那条命令消费者组看到的结果

2.旧 api 使用(hadoop改成cdh,因为旧版本下架了,不测试了)
hadoop02 使用自带脚本消费 topic 数据
bin/kafka-console-consumer.sh --zookeeper localhost:2181/kafka1.0 --topic test

hadoop01 使用自带脚本向 topic 发送数据
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
hadoop03 使用自带脚本消费 topic 数据(此时消费最新数据)
bin/kafka-console-consumer.sh --zookeeper localhost:2181/kafka1.0 --topic test
hadoop03 使用自带脚本消费 topic 数据(从头消费数据)
bin/kafka-console-consumer.sh --zookeeper localhost:2181/kafka1.0 --topic test --from-beginning

查看特定 consumer group 详情
bin/kafka-consumer-groups.sh --zookeeper localhost:2181/kafka1.0 --list
查看 topic 每个 partition 数据消费情况
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181/kafka1.0 --group xxx
参数说明:
Group:消费者组
Topic:消费的 topic 名称
pid:分区编号
Offset:消费者组在分区上消费的位置
logSize:分区上的累计消息条数
Lag:消费 offset 与生产 offset 之间的差值
Owner:线程名称。

9.Kafka 集群监控
KafkaOffsetMonitor 是一个可以用于监控 Kafka 的 Topic 及 Consumer 消费状况的工具。以程
序一个 jar 包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全。
作用:
1)监控 Kafka 集群状态,Topic、Consumer Group 列表。
2)图形化展示 topic 和 Consumer 之间的关系。
3)图形化展示 Consumer 的 offset、Lag 等信息。
1.下载
下载地址:https://github.com/quantifind/KafkaOffsetMonitor(可以使用已经修改版本)
目前 kafka Monitor 必须使用旧 api 才可以监控到,新 api 目前还没有实现。
cd /home/hadoop/ mkdir shell
cd shell
mkdir bin
mkdir lib
mkdir logs

2.脚本参数格式
java -cp /home/hadoop/shell/lib/KafkaOffsetMonitor-assembly-0.2.1.jar
com.quantifind.kafka.offsetapp.OffsetGetterWeb
–zk hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka1.0
–port 8090
–refresh 10.seconds
–retain 2.days > /home/hadoop/shell/logs/kafka/log 2>&1 &
zk:Zookeeper 集群地址
port:为开启 web 界面的端口号
refresh:刷新时间
retain:数据保留时间(单位 seconds, minutes, hours, days)

开发 kafkamonitor.sh 执行脚本
vi kafkamonitor.sh
#!/bin/sh
home=$(cd dirname $0; cd …; pwd). ${home}/bin/common.sh
java -cp ${lib_home}KafkaOffsetMonitor-assembly-0.2.0.jar
com.quantifind.kafka.offsetapp.OffsetGetterWeb
–zk hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka1.0
–port 8090
–refresh 10.seconds
–retain 2.days > /dev/null 2>&1 &

4.脚本授权
给脚本 kafkamonitor.sh 赋予可执行权限
chmod u+x kafkamonitor.sh
5.启动监控脚本
bin/kafkamonitor.sh

6.web 可视化
地址栏输入:cdh01:8090

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值