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

目录

前言

题目:

一、读题分析

二、处理过程  

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

 创建符合题意的Kafka的topic

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

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

启动flume指令

启动脚本,观察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中是大数据处理中常用的数据采集方案之一。

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

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
使用Flume采集端口实时数据流存入Kafka指定Topic,需要按照以下步骤进行操作: 1. 安装KafkaFlume。确保在服务器上安装了KafkaFlume。 2. 创建Kafka Topic使用Kafka的命令行工具创建一个Topic。 3. 创建Flume配置文件。在Flume的conf目录下创建一个新的配置文件,并添加以下内容: ``` agent.sources = source1 agent.channels = channel1 agent.sinks = sink1 agent.sources.source1.type = netcat agent.sources.source1.bind = localhost agent.sources.source1.port = [port_number] agent.channels.channel1.type = memory agent.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink agent.sinks.sink1.topic = [topic_name] agent.sinks.sink1.bootstrap.servers = [kafka_server_url] agent.sinks.sink1.required.acks = 1 agent.sources.source1.channels = channel1 agent.sinks.sink1.channel = channel1 ``` 将[port_number]替换为要监听的端口号,[topic_name]替换为Kafka Topic名称,[kafka_server_url]替换为Kafka服务器的地址。保存文件并退出。 4. 启动Flume Agent。在命令行启动Flume Agent,指定Flume配置文件的路径: ``` $ bin/flume-ng agent --conf conf --conf-file [path_to_file]/[flume_config_file] --name agent -Dflume.root.logger=INFO,console ``` 其,[path_to_file]是Flume配置文件所在的路径,[flume_config_file]是Flume配置文件的名称。示例命令如下: ``` $ bin/flume-ng agent --conf conf --conf-file /root/flume.conf --name agent -Dflume.root.logger=INFO,console ``` 5. 测试数据流使用telnet可以连接到指定端口并向其发送数据,可以验证Flume是否正在接收数据并将其发送到Kafka Topic。 通过以上步骤,可以使用Flume采集端口实时数据流存入Kafka指定Topic
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

约定Da于配置

你的鼓励就是我最大的动力哥们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值