목록분류 전체보기 (59)
🐥
streaming 코드를 작성하면서 filter, count 등 여러가지 연산자를 사용할 수 있다.과거 데이터의 정보가 필요없는 stateless 연산자와, 과거의 데이터가 필요해 데이터 유지가 필요한 statefull 연산자로 나눌 수 있다.Stateless Trasformation과거의 데이터와 상관 없이 현재의 데이터만 사용하는 연산자Stateful Transfmraion이전 배치의 데이터의 유지가 필요한 연산자예: aggreagion, counter, join, group, windowing 등Stateless Transformation각 배치를 이전 배치를 참조하지 않고 독립적으로 처리한다. -> 배치의 출력이 해당 배치의 데이터만을 기반으로 함을 의미select, filter, map, fla..
deployment 나 statefulsets yaml 파일에서 설정하는 방법 `spec.template.spec.nodeSelector`추가 (containers 와 같은 depth) 추가로 데이터타입이 map[string] 이어야해서 숫자로만 이루어져있으면 따옴표 추가 필요
airflow에서 nifi processor로 trigger를 보내야 했다. 사실 nifi에서 restAPI를 지원해주기 때문에 NIFI ETL 자체를 시작하는 것은 큰 문제가 안됐지만 nifi 작업 이후에 airflow에서 후속 task가 있다면 ETL이 어느 시점에 끝나는 지를 확인하는 게 어려웠다. NIFI는 processor 단위로 데이터를 처리하며, flowfile이 processor에 인풋되면 바로 처리 후 output stream으로 내보내기 때문에 종료 시점을 명확히 알 수가 없었다. 아래 블로그에서 airflow에서 nifi 를 트리거할 수 있는 방법을 소개했지만 시작 노드를 `GenerateFlowFile`로 설정해야 하는 등 제약조건이 있었다. https://towardsdatasci..
Background 실시간 stream 처리는 지속적인 input stream의 특성 상 중단되지 않고 24시간 실행되므로 여러 오류 원인으로 failure이 발생할 수 있다. input stream이 작성된 코드로 처리될 수 없는 경우 (잘못된 형식의 데이터) 시스템/cluster 오류의 경우 Spark Streaming에서의 Fault Tolerance 정의 스파크의 목표는 end-to-end Exactly Once 보장이다. (참고) At Most Once: 각 레코드는 한 번만 처리되거나 아예 처리되지 않는다. At Least Once: 각 레코드가 한 번 이상 처리된다. 데이터가 손실되지 않도록 보장하므로 At Most Once보다 강력하지만 중복이 있을 수 있다. Exactly Once: 각 ..
Spark Streaming 이란 core spark API의 확장 프로그램으로 분산 스트림 처리 프로세싱을 지원한다. streaming 타입으로는 아래와 같이 두 종류가 있는데 spark streaming은 RDD 베이스 엔진으로, 2.x버전까지 지원하고 이후 더이상 업데이트 되지 않는 레거시 프로젝트이다. Spark Streaming 종류 Spark Streaming: RDD 기반의 micro-batch 수행 Spark Structured Streaming: Dataframe 기반 micro-batch 수행, 저지연 처리 모드를 도입함으로써 실시간에 가까운 처리가 가능해짐. Spark Structured Streaming 프로그래밍 모델 structured streaming에서는 트리거 간격마다 수신..