0


大数据之使用Flume监听端口采集数据流到Kafka

目录


前言

    本题来源于全国职业技能大赛之大数据技术赛项电商赛题 - 实时数据采集 

题目:


提示:以下是本篇文章正文内容,下面案例可供参考()

一、读题分析

涉及组件:Flume,Kafka

涉及知识点:

  1. Flume的原理,了解sources、,channels,sinks
  2. Kafka 的基本使用
  3. Flume的监听方式以及监听方法

二、处理过程

本题是使用Flume监听端口的数据到Kafka,我还写了一篇关于Flume监听本地文件到HDFS上。

链接:大数据之使用Flume监听本地文件采集数据流到HDFS,使用正则表达式获取

1.先在Kafka中创建符合题意的Kafka的topic

先进入到Kafka的目录

cd $KAFKA_HOME

启动Kafka集群(单机也可以)

创建符合题意的Kafka的topic

bin/kafka-topics.sh --create --bootstrap-server bigdata1:9092 --replication-factor 1 --partitions 4 --topic ods_mall_log

--partitions 4创建分区数为4 --replication-factor 1 生成副本数量1

2.写出Flume所需要的配置文件

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 25001

# Describe the sink KafkaSink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.bootstrap.servers = bigdata1:9092
a1.sinks.k1.kafka.topic = ods_mall_log

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

3.启动脚本然后启动Flume监听端口数据并传到Kafka

在 ~ 目录 进入到 /data_log目录下,启动gen_ds_data_to_socket脚本

cd /data_log

./gen_ds_data_to_socket


启动flume指令

#如果Kafka没有对应的主题,则Flume会自动创建Kafka的topic

#但是很有可能会不符合文章的意思,在这里必须要先手动创建3个分区的Topic

bin/flume-ng agent -c conf/ -n a1 -f /opt/data/flume1.conf -Dflume.root.logger=INFO,console

flume-ng agent 必备!

-c Flume所需要的配置文件

-n conf配置文件取的名字,在这里是a1

-f 写出Flume配置文件的地址

-Dflume.root.logger=INFO,console 在这里指定flume将数据打印在控制台上,方便观察

在这里看到k1 启动了,就是我们配置的sink启动了,如果卡在这不动了,说明flume没有接受到数据,检查flune配置文件以及数据获取的方式是否正确。


启动脚本,观察Flume和Kafka的变化

启动脚本

1.观察Flume,如果Flume有一行Cluster ID:xxxx的话,说明Flume已经采集到数据并发到指定的地方

2.使用消费Kafka的topic,观察数据是否成功上传到Kafka中

#消费Kafka指定的topic 并取2条

--max-message 2 最多获取2条消息

--from-beginning 从最开始消费,如果没有则是实时消费
bin/kafka-console-consumer.sh --bootstrap-server bigdata1:9092 --from-beginning --topic ods_mall_log --max-message 2


三、重难点分析

Flume的配置文件需要自己手动的去创建,官方没有自带的,这个如果不熟悉可以去Flume官网的用户手册上查到所有的配置,花点时间都是可以看懂的。

链接:Apache Flume Documentation

然后就是Kafka的基本使用,在这里不做叙述,请自行搜索学习


总结

题目很简单,比赛过程中,对于这题的麻烦点就是,创建Kafka的主题时,留意题目中给的分区的数量,然后就是Flume配置文件的记忆,你需要了解flume的原理和单元。

如何高效地采集数据是一个重要的问题。Flume是一个分布式的、可靠的、高可用的海量日志采集工具,可以轻松地采集、聚合和移动大量的数据。在数据采集过程中,Flume可以使用网络协议、文件系统和各种其他数据源来收集数据。Flume设计了一个事件模型来处理数据,使用称为“通道”的可配置缓冲区来存储事件,以确保数据不会丢失。同时,使用Flume将数据流转到Kafka中,可以满足将大量数据快速稳定地传输至数据处理流程中的需求。Kafka是一个可扩展的分布式流媒体平台,适用于处理观察型数据。在Kafka中,数据以主题(topic)进行组织,生产者(producer)向主题发送消息,消费者(consumer)从主题读取消息。Flume监听端口后采集数据流到Kafka中,在Kafka中以主题为单位高效地传输数据,支持数据的批量消费和处理,能够满足大数据实时处理和分析的需求。因此,使用Flume监听端口采集数据流到Kafka中是大数据处理中常用的数据采集方案之一。

原创作品如需引用请标明出处

标签: 大数据 kafka flume

本文转载自: https://blog.csdn.net/qq_36920766/article/details/130390694
版权归原作者 云梦泽·兮 所有, 如有侵权,请联系我们删除。

“大数据之使用Flume监听端口采集数据流到Kafka”的评论:

还没有评论