Flume source 支持的type類型
Flume是一個分布式的高可用的消費組件。通過修改配置文件,可以啟動不同的agent處理不同來源的數據。
agent包含source,channel,sink三個組件。今天我們學習下source的type。
1. spooldir
#描述/配置Source a1.sources.r1.type = spooldir a1.sources.r1.spoolDir=/home/park/work/apache-flume-1.6.0-bin/mydata
向指定目錄中傳輸文件,發現flume收集到了該文件,將文件中的每一行都作為日誌來處理
2.NetCat Source
一個NetCat Source用來監聽一個指定端口,並將接收到的數據的每一行轉換為一個事件。
!type– 類型名稱,需要被設置為"netcat"
!bind– 指定要綁定到的ip或主機名。
!port– 指定要綁定到的端口號
max-line-length 512單行最大字節數
3.Avro Source
監聽AVRO端口來接受來自外部AVRO客戶端的事件流。利用Avro Source可以實現多級流動、扇出流、扇入流等效果。另外也可以接受通過flume提供的Avro客戶端發送的日誌信息。
!type – 類型名稱,"AVRO"
!bind – 需要監聽的主機名或IP
!port – 要監聽的端口
threads – 工作線程最大線程數
selector.type
selector.*
interceptors – 空格分隔的攔截器列表
interceptors.*
compression-type none 壓縮類型,可以是“none”或“default”,這個值必須和AvroSource的壓縮格式匹配
sslfalse 是否啟用ssl加密,如果啟用還需要配置一個“keystore”和一個“keystore-password”。
keystore – 為SSL提供的java密鑰文件所在路徑。
keystore-password– 為SSL提供的java密鑰文件 密碼。
keystore-typeJKS密鑰庫類型可以是“JKS”或“PKCS12”。
exclude-protocolsSSLv3 空格分隔開的列表,用來指定在SSL / TLS協議中排除。SSLv3將總是被排除除了所指定的協議。
ipFilter false 如果需要為netty開啟ip過濾,將此項設置為true
ipFilterRules– 定義netty的ip過濾設置表達式規則
#描述/配置Source a1.sources.r1.type = avro a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = 44444
4.HTTP Source
HTTP Source接受HTTP的GET和POST請求作為Flume的事件,其中GET方式應該只用於試驗。
該Source需要提供一個可插拔的"處理器"來將請求轉換為事件對象,這個處理器必須實現HTTPSourceHandler接口,該處理器接受一個 HttpServletRequest對象,並返回一個Flume Envent對象集合。
從一個HTTP請求中得到的事件將在一個事務中提交到通道中。因此允許像文件通道那樣對通道提高效率。
如果處理器拋出一個異常,Source將會返回一個400的HTTP狀態碼。
如果通道已滿,無法再將Event加入Channel,則Source返回503的HTTP狀態碼,表示暫時不可用。
!type 類型,必須為"HTTP"
!port– 監聽的端口
bind 0.0.0.0 監聽的主機名或ip
handler org.apache.flume.source.http.JSONHandler處理器類,需要實現HTTPSourceHandler接口
handler.* – 處理器的配置參數
selector.type
selector.*
interceptors –
interceptors.*
enableSSL false 是否開啟SSL,如果需要設置為true。註意,HTTP不支持SSLv3。
excludeProtocols SSLv3 空格分隔的要排除的SSL/TLS協議。SSLv3總是被排除的。
keystore 密鑰庫文件所在位置。
keystorePassword Keystore 密鑰庫密碼
#描述/配置Source a1.sources.r1.type = http a1.sources.r1.port = 66666
Flume source 支持的type類型