日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数据采集组件:Flume基础用法和Kafka集成

發(fā)布時(shí)間:2025/3/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据采集组件:Flume基础用法和Kafka集成 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文源碼:GitHub || GitEE

一、Flume簡(jiǎn)介

1、基礎(chǔ)描述

Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);

特點(diǎn):分布式、高可用、基于流式架構(gòu),通常用來(lái)收集、聚合、搬運(yùn)不同數(shù)據(jù)源的大量日志到數(shù)據(jù)倉(cāng)庫(kù)。

2、架構(gòu)模型

Agent包括三個(gè)核心組成,Source、Channel、Sink。Source負(fù)責(zé)接收數(shù)據(jù)源,并兼容多種類型,Channel是數(shù)據(jù)的緩沖區(qū),Sink處理數(shù)據(jù)輸出的方式和目的地。

Event是Flume定義的一個(gè)數(shù)據(jù)流傳輸?shù)幕締卧?#xff0c;將數(shù)據(jù)從源頭送至目的地。

Flume可以設(shè)置多級(jí)Agent連接的方式傳輸Event數(shù)據(jù),從最初的source開(kāi)始到最終sink傳送的目的存儲(chǔ)系統(tǒng),如果數(shù)量過(guò)多會(huì)影響傳輸速率,并且傳輸過(guò)程中單節(jié)點(diǎn)故障也會(huì)影響整個(gè)傳輸通道。

Flume支持多路復(fù)用數(shù)據(jù)流到一個(gè)或多個(gè)目的地,這種模式可以將相同數(shù)據(jù)復(fù)制到多個(gè)channel中,或者將不同數(shù)據(jù)分發(fā)到不同的channel中,并且sink可以選擇傳送到不同的目的地。

Agent1理解為路由節(jié)點(diǎn)負(fù)責(zé)Channel的Event均衡到多個(gè)Sink組件,每個(gè)Sink組件分別連接到獨(dú)立的Agent上,實(shí)現(xiàn)負(fù)載均衡和錯(cuò)誤恢復(fù)的功能。

Flume的使用組合方式做數(shù)據(jù)聚合,每臺(tái)服務(wù)器部署一個(gè)flume節(jié)點(diǎn)采集日志數(shù)據(jù),再匯聚傳輸?shù)酱鎯?chǔ)系統(tǒng),例如HDFS、Hbase等組件,高效且穩(wěn)定的解決集群數(shù)據(jù)的采集。

二、安裝過(guò)程

1、安裝包

apache-flume-1.7.0-bin.tar.gz

2、解壓命名

[root@hop01 opt]# pwd /opt [root@hop01 opt]# tar -zxf apache-flume-1.7.0-bin.tar.gz [root@hop01 opt]# mv apache-flume-1.7.0-bin flume1.7

3、配置文件

配置路徑:/opt/flume1.7/conf

mv flume-env.sh.template flume-env.sh

4、修改配置

添加JDK依賴

vim flume-env.sh export JAVA_HOME=/opt/jdk1.8

5、環(huán)境測(cè)試

安裝netcat工具

sudo yum install -y nc

創(chuàng)建任務(wù)配置

[root@hop01 flume1.7]# cd job/ [root@hop01 job]# vim flume-netcat-test01.conf

添加基礎(chǔ)任務(wù)配置

注意:a1表示agent名稱。

# this agent a1.sources = sr1 a1.sinks = sk1 a1.channels = sc1# the source a1.sources.sr1.type = netcat a1.sources.sr1.bind = localhost a1.sources.sr1.port = 55555# the sink a1.sinks.sk1.type = logger# events in memory a1.channels.sc1.type = memory a1.channels.sc1.capacity = 1000 a1.channels.sc1.transactionCapacity = 100# Bind the source and sink a1.sources.sr1.channels = sc1 a1.sinks.sk1.channel = sc1

開(kāi)啟flume監(jiān)聽(tīng)端口

/opt/flume1.7/bin/flume-ng agent --conf /opt/flume1.7/conf/ --name a1 --conf-file /opt/flume1.7/job/flume-netcat-test01.conf -Dflume.root.logger=INFO,console

使用netcat工具向55555端口發(fā)送數(shù)據(jù)

[root@hop01 ~]# nc localhost 55555 hello,flume

查看flume控制面

三、應(yīng)用案例

1、案例描述

基于flume在各個(gè)集群服務(wù)進(jìn)行數(shù)據(jù)采集,然后數(shù)據(jù)傳到kafka服務(wù),再考慮數(shù)據(jù)的消費(fèi)策略。

采集:基于flume組件的便捷采集能力,如果直接使用kafka會(huì)產(chǎn)生大量的埋點(diǎn)動(dòng)作不好維護(hù)。

消費(fèi):基于kafka容器的數(shù)據(jù)臨時(shí)存儲(chǔ)能力,避免系統(tǒng)高度活躍期間采集數(shù)據(jù)過(guò)大沖垮數(shù)據(jù)采集通道,并且可以基于kafka做數(shù)據(jù)隔離并針對(duì)化處理。

2、創(chuàng)建kafka配置

[root@hop01 job]# pwd /opt/flume1.7/job [root@hop01 job]# vim kafka-flume-test01.conf

3、修改sink配置

# the sink a1.sinks.sk1.type = org.apache.flume.sink.kafka.KafkaSink # topic a1.sinks.sk1.topic = kafkatest # broker地址、端口號(hào) a1.sinks.sk1.kafka.bootstrap.servers = hop01:9092 # 序列化方式 a1.sinks.sk1.serializer.class = kafka.serializer.StringEncoder

4、創(chuàng)建kafka的Topic

上述配置文件中名稱:kafkatest,下面執(zhí)行創(chuàng)建命令之后查看topic信息。

[root@hop01 bin]# pwd /opt/kafka2.11 [root@hop01 kafka2.11]# bin/kafka-topics.sh --create --zookeeper hop01:2181 --replication-factor 1 --partitions 1 --topic kafkatest [root@hop01 kafka2.11]# bin/kafka-topics.sh --describe --zookeeper hop01:2181 --topic kafkatest

5、啟動(dòng)Kakfa消費(fèi)

[root@hop01 kafka2.11]# bin/kafka-console-consumer.sh --bootstrap-server hop01:2181 --topic kafkatest --from-beginning

這里指定topic是kafkatest。

6、啟動(dòng)flume配置

/opt/flume1.7/bin/flume-ng agent --conf /opt/flume1.7/conf/ --name a1 --conf-file /opt/flume1.7/job/kafka-flume-test01.conf -Dflume.root.logger=INFO,console

四、源代碼地址

GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent

閱讀標(biāo)簽

【Java基礎(chǔ)】【設(shè)計(jì)模式】【結(jié)構(gòu)與算法】【Linux系統(tǒng)】【數(shù)據(jù)庫(kù)】

【分布式架構(gòu)】【微服務(wù)】【大數(shù)據(jù)組件】【SpringBoot進(jìn)階】【Spring&Boot基礎(chǔ)】

【數(shù)據(jù)分析】【技術(shù)導(dǎo)圖】【 職場(chǎng)】

總結(jié)

以上是生活随笔為你收集整理的数据采集组件:Flume基础用法和Kafka集成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。