中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flume如何部署

發布時間:2021-12-16 10:43:27 來源:億速云 閱讀:181 作者:iii 欄目:開發技術

這篇文章主要講解了“Flume如何部署”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Flume如何部署”吧!

 Flume簡介

Flume是Cloudera提供的一個高可用、高可靠、分布式的海量日志采集、聚合和傳輸的系統。Flume支持在日志系統中定制各類數據發送方用于收集數據,同時Flume提供對數據的簡單處理,并將數據處理結果寫入各種數據接收方的能力。

Flume作為Cloudera開發的實時日志收集系統,受到了業界的認可與廣泛應用。2010年11月Cloudera開源了Flume的第一個可用版本0.9.2,這個系列版本被統稱為Flume-OG,重構后的版本統稱為Flume-NG。改動的另一原因是將 Flume 納入 Apache 旗下,Cloudera Flume改名為Apache Flume成為Apache核心項目。

2 Flume工作原理

Flume(水道)以agent為最小的獨立運行單位。一個agent就是一個JVM。單agent由Source、Sink和Channel三大組件構成,如下圖:

Flume如何部署

Flume的數據流由事件(Event)貫穿始終。事件是Flume的基本數據單位,它攜帶日志數據(字節數組形式)并且攜帶有頭信息,這些Event由Agent外部的Source生成,當Source捕獲事件后會進行特定的格式化,然后Source會把事件推入(單個或多個)Channel中。可以把Channel看作是一個緩沖區,它將保存事件直到Sink處理完該事件。Sink負責持久化日志或者把事件推向另一個Source。以下是Flume的一些核心概念:

組件功能
Agent使用JVM 運行Flume。每臺機器運行一個agent,但是可以在一個agent中包含多個sources和sinks。
Client生產數據,運行在一個獨立的線程。
Source從Client收集數據,傳遞給Channel。
Sink從Channel收集數據,運行在一個獨立線程。
Channel連接 sources 和 sinks ,這個有點像一個隊列。
Events可以是日志記錄、 avro 對象等。

3 Flume部署

 hadoop用戶下
1) 下載
wgte http://archive-primary.cloudera.com/cdh6/cdh/5/flume-ng-1.6.0-cdh6.7.0.tar.gz
cdh6.7對應文檔:
http://archive-primary.cloudera.com/cdh6/cdh/5/flume-ng-1.6.0-cdh6.7.0/
2) 解壓到~/app,檢查用戶和用戶組
tar -xzvf flume-ng-1.6.0-cdh6.7.0.tar.gz -C ~/app/
3) 添加到系統環境變量 
vim ~/.bash_profile
export FLUME_HOME=/home/hadoop/app/apache-flume-1.6.0-cdh6.7.0-bin
export PATH=$FLUME_HOME/bin:$PATH
source ~/.bash_profile
4) 配置flume的jdk路徑
$FLUME_HOME/conf/flume-env.sh
cp flume-env.sh.template flume-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_45

4 Flume監聽端口

配置flume加載的配置文件:

#從指定的網絡端口上采集日志到控制臺輸出
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

5 Flume啟動

啟動flume:

./flume-ng agent \
--name a1 \
--conf $FLUME_HOME/conf \
--conf-file /home/hadoop/script/flume/telnet-flume.conf \
-Dflume.root.logger=INFO,console \
-Dflume.monitoring.type=http \
-Dflume.monitoring.port=34343

-Dflume.root.logger=INFO,console    -- 日志級別

-Dflume.monitoring.type=http        -- http輸出日志

-Dflume.monitoring.port=34343       -- http 端口

未安裝telnet,先安裝telnet命令

[root@locahost ~]#yum  install -y telnet-server 
[root@locahost ~]#yum install -y telnet
由于telnet服務也是由xinetd守護的,所以安裝完telnet-server,要啟動telnet服務就必須重新啟動xinetd 
[root@locahost ~]#service xinetd restart

結果測試:

[root@hadoop001 ~]# telnet localhost 44444
Trying ::1...
Connected to localhost.
Escape character is '^]'.
asd
OK
asd
OK
asd
OK
asd
OK

控制臺日志輸出:

(LoggerSink.java:94)] Event: 數據流事件 有,由【headers】【body】構成,分別為字節數組+內容

2018-08-09 19:20:21,272 (conf-file-poller-0) [INFO - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67)] Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2018-08-09 19:20:21,338 (conf-file-poller-0) [INFO - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67)] jetty-6.1.26.cloudera.4
2018-08-09 19:20:21,391 (conf-file-poller-0) [INFO - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67)] Started SelectChannelConnector@0.0.0.0:34343
2018-08-09 19:29:15,336 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 61 73 64 0D   asd. }
2018-08-09 19:29:15,337 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 61 73 64 0D   asd. }
2018-08-09 19:29:15,337 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 61 73 64 0D   asd. }
2018-08-09 19:29:15,338 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 61 73 64 0D   asd. }


http輸出:

Flume如何部署

7 Flume常用的Type

Source:
名稱含義注意點
avroavro協議的數據源
execunix命令可以命令監控文件 tail -F
spooldir監控一個文件夾不能含有子文件夾,不監控windows文件夾
處理完文件不能再寫數據到文件
文件名不能沖突
TAILDIR既可以監控文件也可以監控文件夾支持斷點續傳功能,重點使用這個
netcat監聽某個端口
kafka監控卡夫卡數據
sink:
名稱含義注意點
kafka寫到kafka中
HDFS將數據寫到HDFS中
logger輸出到控制臺
avroavro協議配合avro source使用
channel:
名稱含義注意點
memory存在內存中
kafka將數據存到kafka中
file存在本地磁盤文件中

感謝各位的閱讀,以上就是“Flume如何部署”的內容了,經過本文的學習后,相信大家對Flume如何部署這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰城市| 新邵县| 宝坻区| 右玉县| 拉孜县| 土默特右旗| 米脂县| 延长县| 康定县| 类乌齐县| 康乐县| 崇信县| 革吉县| 唐河县| 南宫市| 通城县| 讷河市| 霍邱县| 东莞市| 灵台县| 定兴县| 利津县| 永州市| 贵定县| 焉耆| 通许县| 砀山县| 宿松县| 连平县| 渑池县| 南汇区| 勃利县| 三江| 噶尔县| 三门峡市| 衡南县| 庄河市| 曲周县| 岚皋县| 寻乌县| 建水县|