文章目录
前言
在前面blog文章中:《在hadoopHA节点上部署flume高可用组件》和《在hadoopHA节点上部署kafka集群组件》,已经实现大数据实时数据流传输两大组件的部署和测试,本文将讨论flume组件连接kafka集群相关内容,两组件在项目架构图的位置如下图1红圈所示:
flume NG集群前向的source是各类实时的log数据,通过flume sink将这些日志实时sink到后向kafka集群,所有flume sink其实是本架构里kafka的producer角色,kafka集群后向连接spark streaming,用于消费kafka的实时消息(log日志数据)流。
组件版本:
flume-1.9.0
kafka-2.12
1.在kafka集群上创建相应的topic
在实时大数据项目中,实时数据是被flume sink到kafka的topic里,而不是直接sink到hdfs上。
创建topic需要做一定规划,考虑到目前有三个broker节点,分别为nn、dn1以及dn2节点,所以创建了3个分区,每个分区有三个replica,topic名为:sparkapp
[root@nn kafka_2.12]# bin/kafka-topics.sh --create --zookeeper nn:2181/kafka-zk --replication-factor 3 --partitions 3 --topic sparkapp
Created topic sparkapp.
[root@nn kafka-2.12]# bin/kafka-topics.sh --describe --zookeeper nn:2181/kafka-zk --topic sparkapp
Topic:sparkapp PartitionCount:3 ReplicationFactor:3 Configs:
Topic: sparkapp Partition: 0 Leader: 11 Replicas: 11,12,10 Isr: 11,12,10
Topic: sparkapp Partition: 1 Leader: 12 Replicas: 12,10,11 Isr: 12,10,11
Topic: sparkapp Partition: 2 Leader: 10 Replicas: 10,11,12 Isr: 10,11,12
-zookeeper nn:2181/kafka-zk:因为kafka在zk的所有znode都统一放置在/kafka-zk路径下,所以启动时需要注意加上该路径。
2.单节点配置flume的agent sink
2.1 配置flume 文件
这里首先给出单节点的flume是如何连接到kafka集群,在nn节点上启动flume进程。在第3章节,将给出flume集群连接kafka集群,实现两组件之间的高可用实时数据流。
flume source的数据源为/opt/flume_log/web_log/access.log
这里拷贝一份新的配置文件,配置过程简单,相关组件的参数说明可以参考flume官网最新文档:
kafka-sink章节
[root@nn conf]# cp flume-conf.properties flume-kafka.properties
[root@nn conf]#