spark - streaming direct stream 의 부분 실현 원리

1294 단어 빅 데이터
오늘 spark - streaming direct stream 의 실현 원 리 를 보 았 습 니 다. 글 은 이 주소 (내용 로드 가 느 리 고 링크 를 연 후 몇 분 안에 표시 할 수 있 습 니 다) 에 있 습 니 다.
Exactly-once Spark Streaming from Apache Kafka
    몇 가 지 를 정리 하 다.
    1. spark - streaming 은 사실 interval 에 따라 rdd stream 을 만 들 었 습 니 다.rdd 를 만 들 때, 먼저 지난번 에 읽 은 편 이 량 에 따라 rdd 를 정의 한 다음, 방금 정 의 된 rdd 의 실제 수신 데이터 에 따라 rdd 를 생 성 합 니 다
    2.  HasOffset Ranges, 각 topic 에 대응 하 는 모든 partition, rdd 에 HasOffset Ranges 표시
    3.  spark - streaming 의 kafka 기본 consume 메 시 지 는 At - host - once 모드 이지 만 Exactly - once 모드 를 실현 하려 면 모든 rdd partition 의 offset 을 저장 하 는 데 많은 자원 을 소모 합 니 다.예 를 들 어 위의 글 에서 다음 과 같은 빨간색 코드 를 사용 하여 rdd partition 의 offset 를 읽 었 습 니 다.
 stream.foreachRDD { rdd =>
      rdd.foreachPartition { iter =>
        // make sure connection pool is set up on the executor before writing
        SetupJdbc(jdbcDriver, jdbcUrl, jdbcUser, jdbcPassword)
 
        iter.foreach { case (key, msg) =>
          DB.autoCommit { implicit session =>
            // the unique key for idempotency is just the text of the message itself, for example purposes
            sql"insert into idem_data(msg) values (${msg})".update.apply
          }
        }
      }
    }

좋은 웹페이지 즐겨찾기