디렉토리에서 HDFS로 파일을 가져와야하는 유스 케이스가 있습니다. POC로서 Flume에서 소스, 싱크 및 채널을 지정한 간단한 디렉토리 스풀링을 사용 했으므로 제대로 작동합니다. 단점은 파일 크기와 다른 매개 변수를보다 잘 제어하기 위해 고유 한 폴더로 이동하는 여러 파일 형식에 대해 여러 디렉터리를 유지해야한다는 것입니다. 구성을 반복하면서도 쉽지만 간단합니다.Flume - 전체 파일을 Flume에서 이벤트로 간주 할 수 있습니까?
대신 하나의 디렉토리에 여러 파일이 있고 파일의 문자열을 기반으로 HDFS의 특정 디렉토리로 라우팅되는 regex 인터셉터를 사용하는 것이 좋습니다. 내가 기대하고있는 파일의 종류는 첫 번째 줄이 머리글이고 그 다음 줄이 쉼표로 구분 된 CSV 파일입니다.
이것을 염두에두고 몇 가지 질문이 있습니다.
- 어떻게 인터셉터가 파일을 처리합니까?
- CSV의 헤더 행은 ID와 이름으로 다음 행에 이어지는
ID, Name
과 같으며 다음 디렉토리에있는 다른 파일은 이름과 주소로 다음 행에 이어Name, Address
이됩니다. 그러면 인터셉터와 채널 구성을 다른 HDFS 디렉토리로 라우팅하는 것처럼 보이십니까? - 정규 표현식과 명확하게 일치하지 않는 후속 행을 인터셉터가 어떻게 처리합니까?
- 전체 파일이 하나의 이벤트를 구성하는지 또는 하나의 파일이 실제로 여러 이벤트가 될 수 있습니까?
알려 주시기 바랍니다. 감사!
답변 해 주셔서 감사합니다. 그것은 나를 위해 몇 가지를 명확하게 해줍니다. 그러나, 내가 알고 싶은 것은 regex 필터링 인터셉터를 사용할 수 있다면 (그렇다면 적합 할 것입니다), 그렇다면 채널 선택기를 사용하여 해당 HDFS 폴더로 파일을 라우팅해야합니까? – CodingInCircles
RegexFilterInterceptor는 이벤트 본문과 일치하는 구성된 정규식을 기반으로 선택적으로 이벤트를 필터링하므로 실제로 도움이되지 않습니다. 이는 포함 또는 제외 기반 필터링을 지원합니다. 결과를 헤더에 푸시하는 자체 regex 인터셉터를 구현해야합니다. –
안녕하세요 erik, 그냥 zip 파일을 가져 오는 중인지 알고 싶습니다. 단일 이벤트 일 것입니다. zip 파일의 내부 파일을 가져 오는 방법. 단일 이벤트로 파일을 강제 실행하는 것이 가능합니다. 이 질문에 –