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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制

發布時間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Flume日志收集

1.1 總體介紹

官方地址:http://flume.apache.org/

1.1.1 背景

flume 作為 cloudera 開發的實時日志收集系統,受到了業界的認可與廣泛應用。Flume 初始的發行版本目前被統稱為 Flume OG(original generation),屬于 cloudera。但隨著 FLume 功能的擴展,Flume OG 代碼工程臃腫、核心組件設計不合理、核心配置不標準等缺點暴露出來,尤其是在 Flume OG 的最后一個發行版本 0.94.0 中,日志傳輸不穩定的現象尤為嚴重,為了解決這些問題,2011 年 10 月 22 號,cloudera 完成了 Flume-728,對 Flume 進行了里程碑式的改動:重構核心組件、核心配置以及代碼架構,重構后的版本統稱為 Flume NG(next generation);改動的另一原因是將 Flume 納入 apache 旗下,cloudera Flume 改名為 Apache Flume。

flume是一個分布式、可靠、和高可用的海量日志采集、聚合和傳輸的系統。支持在日志系統中定制各類數據發送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(比如文本、HDFS、Hbase等)的能力 。

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

1.1.2 特點

Flume的可靠性
當節點出現故障時,日志能夠被傳送到其他節點上而不會丟失。Flume提供了三種級別的可靠性保障,從強到弱依次分別為:end-to-end(收到數據agent首先將event寫到磁盤上,當數據傳送成功后,再刪除;如果數據發送失敗,可以重新發送。),Store on failure(這也是scribe采用的策略,當數據接收方crash時,將數據寫到本地,待恢復后,繼續發送),Besteffort(數據發送到接收方后,不會進行確認)

可恢復性
還是靠Channel.推薦使用FileChannel,事件持久化在本地文件系統里面(性能比較差)。

核心概念
**Agent:**使用JVM運行Flume。每臺機器運行一個agent,但是可以再一個agent中包含多個sources和sinks。
Client: 生產數據,運行一個獨立的線程。
Source: 從Client收集數據,運行一個獨立線程。
Channel: 連接sources和sinks,這個有點像一個隊列。
Events: 可以是日志記錄、avro對象等。

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

值得注意的是,Flume提供了大量內置的Source、Channel和Sink類型。不同類型的Source,Channel和sink可以自由組合。組合方式基于用于設置的配置文件,非常靈活。比如:Channel可以把事件暫存在內存里,也可以持久化到本地硬盤上。Sink可以把日志寫入HDFS,HBase,甚至是另外一個Source等等。Flume支持用戶建立多級流,也就是說,多個agent可以協同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes。如下圖所示:

1.1.3 采集形式

日志收集中一個非常常見的場景是大量的日志生成客戶端將數據發送給附加到存儲子系統的一些消費者代理。例如,從數百個web服務器中收集的日志,發送給數十個寫入HDFS集群的代理。

在離線階段,Flume的日志收集,Agent1/Agent2/Agent3端也是Flume端,主要的作用是采集nginx日志,采集到的日志文件最后下沉到另外一個agent4,最終通過agent4將數據下沉到hdfs中。

1.2 Agent1/Agent2/Agent3 Flume采集端配置

1.2.1 前期準備

運行Flume-1.8.0的時候,需要JDK,否則會報錯。修改jdk位置:

[root@bigdata1 conf]# cd /home/bigdata/installed/flume-1.8.0/conf [root@bigdata1 conf]# vim flume-env.sh export JAVA_HOME=/home/bigdata/installed/jdk1.8.0_73

1.2.2 配置Flume內存參數

[root@bigdata1 flume-1.8.0]# cd /home/bigdata/installed/flume-1.8.0/conf [root@bigdata1 flume-1.8.0]# vim flume-env.sh 修改flume-1.8.0/bin/flume-ng,主要修改JAVA_OPTS這個參數的值,具體的值是: JAVA_OPTS="-Xmx256m"

內容是:

1.2.3 創建文件夾

進入線上服務器flume所在位置。

[root@bigdata1 flume-1.8.0]# cd /xxxxx/apache-flume-1.8.0-bin [root@bigdata1 flume-1.8.0]# ll 總用量 6296 drwxrwxrwx 2 bigdata bigdata 62 3月 22 10:46 bin -rwxrwxrwx 1 bigdata bigdata 81264 9月 15 2017 CHANGELOG drwxrwxrwx 2 bigdata bigdata 286 6月 5 21:10 conf -rwxrwxrwx 1 bigdata bigdata 5681 9月 15 2017 DEVNOTES -rwxrwxrwx 1 bigdata bigdata 2873 9月 15 2017 doap_Flume.rdf drwxrwxrwx 10 bigdata bigdata 4096 9月 15 2017 docs drwxr-xr-x 3 root root 123 6月 11 15:51 fileCHK drwxr-xr-x 2 root root 170 6月 11 16:50 fileData drwxrwxrwx 2 bigdata bigdata 8192 3月 22 10:46 lib -rwxrwxrwx 1 bigdata bigdata 27663 9月 15 2017 LICENSE drwxr-xr-x 2 root root 23 5月 15 14:47 logs -rw------- 1 root root 4054498 6月 11 16:50 nohup.out -rwxrwxrwx 1 bigdata bigdata 249 9月 15 2017 NOTICE -rwxrwxrwx 1 bigdata bigdata 2483 9月 15 2017 README.md -rwxrwxrwx 1 bigdata bigdata 1588 9月 15 2017 RELEASE-NOTES drwxrwxrwx 2 bigdata bigdata 68 3月 22 10:46 tools -rw-r--r-- 1 root root 1242266 6月 11 16:20 zookeeper.out [root@bigdata1 flume-1.8.0]#

要注意的是,上面的fileCHK,fileData為自己手動創建的,創建命令:

[root@bigdata1 flume-1.8.0]# cd /xxxxx/apache-flume-1.8.0-bin [root@bigdata1 flume-1.8.0]# mkdir fileCHK [root@bigdata1 flume-1.8.0]# mkdir fileData

1.2.4 查看/殺死Flume進程的方式

查看Flume的方式:

[root@bigdata1 flume-1.8.0]# grep flume | grep -v grep

殺死Flume的方式:

[root@bigdata1 flume-1.8.0]# kill -9 `ps -ef | grep flume | grep -v grep | awk '{print $2}'`

1.2.5 Conf文件配置

進入conf文件夾,創建采集日志的配置文件

[xxx@xxx]# vim file-collect-logs.conf

內容是:

#定義agent各個組件的名稱 a1.sources=r1 a1.sinks=k1 a1.channels=c1#描述source端 a1.sources.r1.type=exec #要注意的是,這里使用的是-F,只有這樣才能保證nginx日志文件變化之后,不會出錯 a1.sources.r1.command=tail -n +0 -F /var/log/nginx/tomcat_access.log a1.sources.r1.channels=c1 #a1.sources.r1.restart=true #a1.sources.r1.restartThrottle=5000 a1.sources.r1.threads=100#Describe the sink ##type設置成avro來設置發消息 a1.sinks.k1.type = avro a1.sinks.k1.channel = c1 ##下沉到bigdata1這臺機器 a1.sinks.k1.hostname = xxx.xxx.xxx.xxx ##下沉到bigdata1中的4141 a1.sinks.k1.port = 4141 (此處和線上配置不一致) a1.sinks.k1.batch-size = 10000#使用File通道 a1.channels.c1.type=file a1.channels.c1.checkpointDir=/usr/local/work/apache-flume-1.8.0-bin/fileCHK a1.channels.c1.dataDirs=/usr/local/work/apache-flume-1.8.0-bin/fileData a1.channels.c1.keep-alive=60

1.2.6 Flume啟動

采集端配置好之后,等待接收端Flume啟動后,啟動采集端Flume,啟動方式是:

[x@xxx apache-flume-1.8.0-bin] cd /xxx/apache-flume-1.8.0-bin [x@xxx apache-flume-1.8.0-bin] nohup bin/flume-ng agent -c conf -f conf/file-collect-logs.conf -n a1 -Dflume.root.logger=INFO,console &

其中殺死進程的方式:

kill -9 `ps -ef | grep flume | grep -v grep | awk '{print $2}'`

要注意的是:
在Flume修改配置之后是不需要重啟Flume的。直接保存配置文件即可讓配置啟用。

1.3 Agent4 avro接收端Flume參數配置

1.3.1 前期準備

運行Flume-1.8.0的時候,需要JDK,否則會報錯。修改jdk位置:

[root@bigdata1 conf]# cd /home/bigdata/installed/flume-1.8.0/conf [root@bigdata1 conf]# vim flume-env.sh export JAVA_HOME=/home/bigdata/installed/jdk1.8.0_73

1.3.2 配置Flume內存參數

參考1.2.1

1.3.3 創建文件夾

進入Flume所在位置,創建fileCHK 和 fileData

[root@bigdata1 flume-1.8.0]# cd /xxxx/installed/flume-1.8.0 [root@bigdata1 flume-1.8.0]# ll 總用量 6360 drwxrwxrwx 2 bigdata bigdata 62 3月 22 10:46 bin -rwxrwxrwx 1 bigdata bigdata 81264 9月 15 2017 CHANGELOG drwxrwxrwx 2 bigdata bigdata 286 6月 5 21:10 conf -rwxrwxrwx 1 bigdata bigdata 5681 9月 15 2017 DEVNOTES -rwxrwxrwx 1 bigdata bigdata 2873 9月 15 2017 doap_Flume.rdf drwxrwxrwx 10 bigdata bigdata 4096 9月 15 2017 docs drwxr-xr-x 3 root root 123 6月 11 15:51 fileCHK drwxr-xr-x 2 root root 170 6月 11 17:18 fileData drwxrwxrwx 2 bigdata bigdata 8192 3月 22 10:46 lib -rwxrwxrwx 1 bigdata bigdata 27663 9月 15 2017 LICENSE drwxr-xr-x 2 root root 23 5月 15 14:47 logs -rw------- 1 root root 4121563 6月 11 17:18 nohup.out -rwxrwxrwx 1 bigdata bigdata 249 9月 15 2017 NOTICE -rwxrwxrwx 1 bigdata bigdata 2483 9月 15 2017 README.md -rwxrwxrwx 1 bigdata bigdata 1588 9月 15 2017 RELEASE-NOTES drwxrwxrwx 2 bigdata bigdata 68 3月 22 10:46 tools -rw-r--r-- 1 root root 1242266 6月 11 16:20 zookeeper.out [root@bigdata1 flume-1.8.0]# 創建fileCHK 和 fileData [root@bigdata1 flume-1.8.0]# cd /xxxxx/apache-flume-1.8.0-bin [root@bigdata1 flume-1.8.0]# mkdir fileCHK [root@bigdata1 flume-1.8.0]# mkdir fileData

1.3.4 查看/殺死Flume進程的方式

參看1.2.4

1.3.5 編寫Flume sink—>hdfs的配置文件

[root@bigdata1 conf]# cd /home/bigdata/installed/flume-1.8.0/conf [root@bigdata1 conf]# vim avro-collect-logger.conf

具體內容如下:

#定義agent中的各各組件 a1.sources = r1 a1.sinks = k1 a1.channels = c1##描述和配置source端 ##source中的avro組件是一個接收者服務 a1.sources.r1.type = avro a1.sources.r1.channels = c1 #這里的bigdata1是機器hostname,可以寫成ip地址。外界調用的時候,可以使用這個ip和下面的端口號port聯合調用 a1.sources.r1.bind = bigdata1 a1.sources.r1.port = 4141 a1.sources.r1.threads = 100# Describe the sink ## 表示下沉到hdfs,類型決定了下面的參數 a1.sinks.k1.type = hdfs ## hdfs目錄路徑 a1.sinks.k1.hdfs.path = /nginx/%y-%m-%d ##寫入hdfs的文件名前綴,可以使用flume提供的日期及%{host}表達式 a1.sinks.k1.hdfs.filePrefix = events- ## 表示到了需要觸發的時間時,是否要更新文件夾,true:表示要 a1.sinks.k1.hdfs.round = true #多久時間后close hdfs文件。單位是秒,默認30秒。設置為0的話表示不根據時間close hdfs文件 #配置下面的參數,表示40分鐘滾動一次 a1.sinks.k1.hdfs.rollInterval = 3600 ## 表示每隔value分鐘改變一次(在0~24之間) #a1.sinks.k1.hdfs.roundValue = 0 ## 切換文件的時候的時間單位是分鐘 #a1.sinks.k1.hdfs.roundUnit = minute ## 文件大小超過一定值后,close文件。默認值1024,單位是字節。設置為0的話表示不基于文件大小,134217728表示128m ## 0表示不按照文件大小進行滾動。 a1.sinks.k1.hdfs.rollSize = 0 ## 寫入了多少個事件后close文件。默認值是10個。設置為0的話表示不基于事件個數 a1.sinks.k1.hdfs.rollCount = 0 ## 批次數,HDFS Sink每次從Channel中拿的事件個數。默認值100 a1.sinks.k1.hdfs.batchSize = 100000 ## 使用本地時間戳 a1.sinks.k1.hdfs.useLocalTimeStamp = true #生成的文件類型,默認是Sequencefile,可用DataStream:為普通文本 a1.sinks.k1.hdfs.fileType = DataStream #HDFS操作允許的時間,比如hdfs文件的open,write,flush,close操作。單位是毫秒,默認值是10000,一小時為:3600000,這里稍微設置的大寫 a1.sinks.k1.hdfs.callTimeout = 7200000 a1.sinks.k1.hdfs.writeFormat = Text #配置這個參數之后,不會因為文件所在塊的復制而滾動文件了,只會根據你的配置項來滾動文件了。 #設置這個參數之后,上面的rollInterval、rollSize、rollCount等才會起作用。#hdfs.minBlockReplicas是為了讓flume感知不到hdfs的塊復制,這樣滾動配置才不會受影響。 #假如hdfs的副本為3.那么配置的滾動時間為10秒,那么在第二秒的時候,flume檢測到hdfs在復制塊,那么這時候flume就會滾動 #這樣導致flume的滾動方式受到影響。所以配置flume hdfs.minBlockReplicas配置為1,就檢測不到副本的復制了。但是hdfs的副本還是3 a1.sinks.k1.hdfs.minBlockReplicas=1#描述channel,適用場景是要求并發高,并且機器內存足夠,丟失數據不會很影響總體結果的場景。但是重啟和宕機,數據會丟失。 #配置不好的時候,會出現內存等的問題。 #a1.channels.c1.type=memory #a1.channels.c1.capacity=10000 #a1.channels.c1.transactionCapacity=10000 #a1.channels.c1.byteCapacityBufferPercentage = 20 #a1.channels.c1.byteCapacity = 800000 #a1.channels.c1.keep-alive = 60#適用場景,并發要求不高,要求硬盤足夠即可,數據最后存在file中的,機器重啟ls 或flume重啟,只要調整參數,可以保證數據不丟失。 a1.channels.c1.type=file a1.channels.c1.checkpointDir=/home/bigdata/installed/flume-1.8.0/fileCHK a1.channels.c1.dataDirs=/home/bigdata/installed/flume-1.8.0/fileData a1.channels.c1.keep-alive=60 a1.channels.c1.capacity=10000000 a1.channels.c1.transactionCapacity=10000000#綁定source和sink到channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1

1.3.6 Flume啟動

[root@bigdata1 flume-1.8.0]# cd /home/bigdata/installed/flume-1.8.0 [root@bigdata1 flume-1.8.0]# nohup bin/flume-ng agent -c conf -f conf/avro-collect-logger.conf -n a1 -Dflume.root.logger=INFO,console &

1.3.7 查看未關閉的塊

hadoop fsck -openforwrite | more 查看未關閉塊

1.3.8 查看運行日志

可以通過查看nohup.out的方式查看運行日志。

總結

以上是生活随笔為你收集整理的Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区三区视频网站 | 欧美黄色免费观看 | 成人理论视频 | 狠狠干在线观看 | 四虎福利| 欧美双性人妖o0 | 三级黄色生活片 | 成人精品视频在线观看 | 香蕉视频污在线观看 | 日本成人动漫在线观看 | 一区二区视频在线播放 | 国产成人免费观看视频 | 亚洲av无码日韩精品影片 | 日韩午夜激情 | 国产三级三级看三级 | 国产aⅴ爽av久久久久成人 | 久久久久久久久综合 | 99热这里只有精品8 国产一卡二 | 日韩视频一区二区三区在线播放免费观看 | 日本午夜精品 | 国产精品人人妻人人爽 | 欧美中文字幕一区 | 亚洲乱码一区二区三区在线观看 | 麻豆欧美| 蜜桃视频在线观看www | 日韩在线观看免费av | 大波大乳videos巨大 | 94av| 久热亚洲 | 熟女少妇内射日韩亚洲 | 黄色一级带| 丝袜美腿av| 精品久久久久久无码人妻 | 日本一区二区三区在线免费观看 | 在线观视频免费观看 | 国产精品高潮呻吟AV无码 | 91美女在线视频 | 丁香网五月天 | 欧美偷拍精品 | 欧美精品在线观看视频 | 国产精品白丝喷水在线观看 | 免费看黄色的网站 | 91.久久| 亚洲小说在线 | 日本不卡一区二区三区视频 | julia在线播放88mav | 亚洲蜜臀av一区二区三区 | av在线不卡免费 | 岛国二区 | 亚洲国产精品无码久久久 | av毛片一区 | 日本欧美一级片 | 色妞视频 | 国产免费一级 | 成人99视频 | 亚洲网站在线观看 | 色偷偷资源网 | 自拍99页 | 四虎黄色影院 | 国产成人自拍偷拍 | 国产精品一二三区在线观看 | 成人福利视频网 | 色秀视频在线观看 | 男人插女人免费视频 | 高清av免费 | 婷婷激情小说网 | 午夜视频福利 | 欧美18一20男同69gay | 久久国产色av| 91丨porny丨对白| 久久久久无码国产精品一区李宗瑞 | 亚洲精品成人在线 | 伊人久久综合影院 | 日韩成人午夜 | 欧美大片免费观看网址 | 久久天天 | av在线免费不卡 | 啪啪激情网 | 精品国产污污免费网站入口 | 亚洲一区二区免费 | 四虎激情 | 91精品国产麻豆国产自产在线 | 国产又黄又大又爽 | 久久com | 亚洲女人毛片 | 免费黄色小视频网站 | 成人日韩在线观看 | 91免费在线播放 | 毛片www| 免费在线激情视频 | 国产精品第一页在线观看 | xx69欧美| ,亚洲人成毛片在线播放 | 麻豆剧场 | 毛片内射久久久一区 | 色七七网站 | 韩国三级做爰视频 | 中文字幕无码精品亚洲资源网久久 | 狠狠操五月天 |