3

이벤트 브로커에서 발생하는 이벤트 스트림이 있습니다 ("메시지"또는 "데이터"라고도 부를 수 있음). 이벤트 브로커는 Kafka 또는 Amazon Kinesis 또는 Microsoft Event Hubs 일 수 있지만, 카프카라고 가정 해 보겠습니다.이벤트 스트림을 저온 저장 장치에 보관하려면 어떻게해야합니까?

내 목표는이 이벤트 스트림을 받아 콜드 스토리지; 즉, Hadoop/Spark를 통해 향후 분석을 위해 데이터를 저장하는 것입니다. 즉,이 "수다스러운"이벤트 스트림을 HDFS의 "chunky"파일로 변환하고 싶습니다. 클라우드 환경에서는 HDFS 대신 S3 또는 Azure Storage를 사용합니다.

나는 또한 내 솔루션이 비용 효율적이라고 생각하고 싶습니다. 예를 들어 디스크 공간 비용을 줄이기 위해 Avro/ORC와 같은 직렬화 형식을 사용합니다. 나는 또한 주어진 이벤트가 냉장 보관에 지나치지 않는 한 번만의 보증인 (once-on-once-once)에 대한 보너스 포인트와 같다.

내 핵심 질문은 어떻게 사람들이이 문제를 해결하는

  • ?
  • 이미이 시나리오를 처리하는 구성 요소가 있습니까?
  • 솔루션을 직접 개발해야합니까?
  • 적어도 권장 패턴은 무엇입니까?

답변

3

음, kafka에서 HDFS로 데이터를 가져 오는 데 camus 인 kafka를 사용하고 있습니다. Camus는 avro 직렬화를 지원합니다. camus 및 avro에 대한 자세한 내용은 here을 참조하십시오.

1

또 다른 옵션은 Kafka 소스 (또는 카프카 채널) 및 HDFS 싱크와 함께 Flume을 사용하는 것입니다. HDFS 싱크는 특정 크기 또는 시간에 롤하도록 구성 할 수 있습니다.