2016-10-04 5 views
1

일부 소스에서 데이터 스트림을 읽어야합니다 (내 경우에는 UDP 스트림이지만 중요하지 않아야 함). 각 레코드를 변환하여 HDFS에 씁니다.Apache Flume 대 Apache Flink의 차이점

Flume 또는 Flink을 사용하는 경우에는 어떤 차이가 있습니까?

각 이벤트를 변환하기 위해 사용자 정의 인터셉터와 함께 Flume을 사용할 수 있음을 알고 있습니다.

하지만 저는 플린 크에서 새롭기 때문에 플 링크가 똑같이 할 것 같습니다.

어느 것이 좋을까요? 성능에 차이가 있습니까?

제발, 도와주세요!

답변

0

면책 사항 : 저는 Apache Flink의 커미터이자 PMC 멤버입니다. Apache Flume에 대한 자세한 지식이 없습니다.

다양한 소스에서 HDFS로 데이터를 스트리밍하는 것은 Apache Flume의 주요 사용 사례 중 하나입니다. 그것은 특수 도구이며 관련된 많은 기능이 내장되어 있다고 가정합니다. Flume의 성능에 대해서는 언급 할 수 없습니다.

Apache Flink는 데이터 스트림 처리 및 Flume보다 일반적인 (예 : 이벤트 시간, 고급 윈도우 처리, 고급 API, 내결함성 및 상태 저장 응용 프로그램 ...) 지원을위한 플랫폼입니다. 스트리밍 분석 및 CEP를 비롯한 Flink를 사용하여 다양한 종류의 스트림 처리 응용 프로그램을 구현하고 실행할 수 있습니다.

Flink에는 HDFS 파일에 데이터 스트림을 쓰는 롤링 파일 싱크가 있으며 사용자 정의 함수를 통해 모든 종류의 사용자 지정 동작을 구현할 수 있습니다. 그러나 HDFS 로의 데이터 처리를위한 특수 도구는 아닙니다. 이 사용 사례에 대해 많은 기본 제공 기능을 기대하지 마십시오. Flink는 매우 우수한 처리량과 낮은 대기 시간을 제공합니다.

단순한 레코드 레벨 변환 이상을 필요로하지 않는다면 먼저 Flume을 사용하여 유스 케이스를 해결하려고합니다. Flume을 선택했을 때 Flume이 구현할 몇 가지 기능이 필요합니다. 앞으로 더 많은 고급 스트림 처리를 수행하기를 기대한다면 Flink는 확실히 가치가 있습니다.

0

면책 조항 : 저는 Apache Flume의 커미터입니다. 아파치 플 링크에 대한 자세한 지식이 없습니다.

당신이 설명한 유스 케이스의 경우, Flume이 올바른 선택 일 수 있습니다.

netcat UDP source이 코드베이스에 적용될 때까지 Exec Source을 사용할 수 있습니다.

변환을 위해서는 제안을하기가 어렵지만 Morphline Interceptor을 살펴 보시기 바랍니다.

채널이 UDP 인 경우 약간의 무시할 수있는 데이터 손실이 허용되어야하므로 채널에 대해서는 Memory Channel을 권장합니다.

싱크 와이즈, HDFS Sink은 아마도 사용자의 요구를 충족시킬 것입니다.