Flume1.7.0의 TaildirSource 소개
6898 단어 flume
요구 사항 설명
SpoolDirectorySource
를 사용하면 감청 디렉터리를 설정할 수 있습니다. 이 디렉터리 아래의 모든 파일을 감청할 수 있습니다. 그러나 설정 디렉터리 아래에 하위 디렉터리가 끼워져 있으면 감청할 수 없습니다. 원본 코드를 수정하면 디렉터리를 설정한 모든 하위 디렉터리의 모든 파일을 귀속적으로 감청할 수 있습니다.그러나
SpoolDirectorySource
디렉터리의 파일을 감청하는 것은 동적 변화를 허용하지 않는다는 제한이 아직 풀리지 않았다.예를 들어 제가 yarn의nodemanager의 로그를 수집할 때 감청 디렉터리 아래의 파일은 동적 추가된 것이지 선생이 하나의 .tmp
임시 파일이 아니라 모두 쓴 후rename
에 동적 추가 내용의 파일을 실시간으로 감청할 수 있도록 개선해야 합니다.이것은 약간
SpoolDirectorySource
+ExecSource
의 소스솔루션
먼저 자이언트의 어깨를 밟을 수 있는지
SpoolDirectorySource
의flume1.7.0
를 살펴보니 하나realease note
가 추가된 것을 발견하고 들어가 보니 우리가 필요로 하는 것이 아닌가!공식 description을 붙여 보겠습니다.
Description
This is the proposal of implementing a new tailing source.
This source watches the specified files, and tails them in nearly real-time once appends are detected to these files.
This source is reliable and will not miss data even when the tailing files rotate.
It periodically writes the last read position of each file in a position file using the JSON format.
If Flume is stopped or down for some reason, it can restart tailing from the position written on the existing position file.
It can add event headers to each tailing file group.
A attached patch includes a config documentation of this.
This source requires Unix-style file system and Java 1.7 or later.
자, 그것이 있으면 다음과 같은 두 가지 해결 방안이 있습니다. 1.flume 1.7.0 2를 직접 사용합니다.이 기능을flume1.6.0에 추가
우리는 이미 flume 1.6.0에 대해 비교적 큰 변화를 했기 때문에 분명히 두 번째 방안이 필요하다.
집적 과정에서 주로 바뀌는 것은 두 개
Taildir Source
이다.module
에 추가flume-taildir-source
2.알림에 따라 flume-ng-sources
아래의 일부 파일을 한 걸음 한 걸음 수정합니다.귀속 감청 하위 디렉터리의 특성을 증가시키다
flume-ng-core
구성 붙여넣기: # source2: tail_dir_source -----------------
agent.sources.tail_dir_source.type = org.apache.flume.source.taildir.TaildirSource
agent.sources.tail_dir_source.channels = memory_channel
agent.sources.tail_dir_source.positionFile = /tmp/taildir_position.json
agent.sources.tail_dir_source.filegroups = f1
agent.sources.tail_dir_source.filegroups.f1 = /home/urey/yarn_log/.*
agent.sources.tail_dir_source.batchSize = 100
agent.sources.tail_dir_source.backoffSleepIncrement = 1000
agent.sources.tail_dir_source.maxBackoffSleep = 5000
agent.sources.tail_dir_source.recursiveDirectorySearch = true
agent.sources.tail_dir_source.yarnApplicationHeader = true
agent.sources.tail_dir_source.yarnContainerHeader = true
유사
TaildirSource
이 기능이 하는 일을 늘리려면 마지막으로 SpoolDirectorySource
이 기능을 추가해서 우리의 수요를 만족시켜야 한다.'Flume의 Spooling Directory Source Sub-directories 지원'과 같은 변경은
TaildirSource
여러 개의 감청 원본을 지정할 수 있고, 원본마다 해당하는 감청 경로 아래의 어떤 파일을 지정할 수 있으며, 아래의 변경 후 아래의 모든 하위 디렉터리를 귀속적으로 포함할 수 있음을 주의해야 한다.예: 구성됨
filegroups
, 감청 기능:/home/urey/yarn_log/test1.log
/home/urey/yarn_log/dir1/test2.log
/home/urey/yarn_log/dir1/dir2/test3.log
...
최신 코드는github에 업로드되었습니다. 사용해 보십시오.
flume-source-taildir-recursive
주:flume1.7.0 자체가 아직 발표되지 않았기 때문에
/home/urey/yarn_log/.*
결함이 있을 수 있습니다. 문제가 발생하면 로그 포지셔닝 문제를 보고 지역사회에 해당하는 issue와 해결 방안이 있는지 확인해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Flume1.7.0의 TaildirSource 소개변경된 TaildirSource를 사용하면 구성 디렉토리의 동적 변경 사항을 반복적으로 감청할 수 있습니다. SpoolDirectorySource를 사용하면 감청 디렉터리를 설정할 수 있습니다. 이 디렉터리 아래의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.