스파크 스트리밍 예제

“카프카에서 수신을 중지”문제는 몇 가지 설명이 필요합니다. 현재 ssc.start() 통해 스트리밍 응용 프로그램을 시작하면 입력 데이터 원본(예: Kafka)을 사용할 수 없게 되더라도 처리가 시작되고 무기한 계속됩니다. 즉, 스트림은 업스트림 데이터 원본에 대한 연결이 끊어지는지 감지할 수 없으므로 다시 연결하거나 실행을 중지하여 이 이벤트에 대응할 수 없습니다. 마찬가지로 데이터 원본에서 읽는 수신기를 분실하면 스트리밍 응용 프로그램이 빈 RDD를 생성합니다. 스파크가 있는 TableOutputFormat 클래스를 사용하여 MapReduce에서 HBase 테이블에 쓰는 방법과 유사하게 HBase 테이블에 쓸 수 있습니다. 아래에서는 TableOutputFormat 클래스를 사용하여 HBase에 쓰기 위한 구성을 설정합니다. 센서, IoT 장치, 소셜 네트워크 및 온라인 트랜잭션은 모두 지속적으로 모니터링하고 신속하게 조치를 취해야 하는 데이터를 생성합니다. 그 결과 대규모 실시간 스트림 처리의 필요성이 그 어느 때보다 도드라져 있습니다. 이 자습서 모듈에서는 아파치 스파크에서 스트리밍 데이터 집합을 처리하기 위한 주요 모델인 구조화 스트리밍을 소개합니다.

구조화 된 스트리밍에서 데이터 스트림은 지속적으로 추가 되는 테이블으로 처리 됩니다. 이렇게 하면 일괄 처리 모델과 매우 유사한 스트림 처리 모델이 발생합니다. 스트리밍 계산을 정적 테이블과 마찬가지로 표준 일괄 처리와 같은 쿼리로 표현하지만 Spark는 무한 입력 테이블에서 증분 쿼리로 실행합니다. Spark 스트리밍 응용 프로그램에 필요한 클러스터 메모리의 양은 사용되는 변환 유형에 따라 크게 달라집니다. 예를 들어, 마지막 10분 간의 데이터에 대한 창 작업을 사용하려면 클러스터에 10분 분량의 데이터를 메모리에 담을 수 있는 충분한 메모리가 있어야 합니다. 또는 많은 수의 키와 함께 updateStateByKey를 사용하려는 경우 필요한 메모리가 높을 것입니다. 반대로 간단한 맵 필터 저장소 작업을 수행하려는 경우 필요한 메모리가 부족합니다. 변환 작업(transformWith과 같은 변형과 함께)을 사용하면 임의의 RDD-RDD 함수를 DStream에 적용할 수 있습니다. DStream API에 노출되지 않는 RDD 작업을 적용하는 데 사용할 수 있습니다.

예를 들어 다른 데이터 집합으로 데이터 스트림의 모든 일괄 처리를 조인하는 기능은 DStream API에 직접 노출되지 않습니다. 그러나 변환을 쉽게 사용하여 이 작업을 수행할 수 있습니다. 이것은 매우 강력한 가능성을 가능하게합니다. 예를 들어, 미리 계산된 스팸 정보(Spark로도 생성될 수도 있음)와 입력 데이터 스트림을 결합한 다음 이를 기반으로 필터링하여 실시간 데이터 정리를 수행할 수 있습니다. 스트리밍 데이터에 대한 HBase 테이블 스키마는 다음과 같습니다 : 스파크 스트리밍은 분당 많은 RRD를 생성한다는 것을 명심하십시오, 각각의 여러 파티션을 포함, 그래서 바람직하게는 각 카프카에 대한 새로운 카프카 생산자를 만들 수 없습니다, 각 카프카에 대한 혼자 메시지. 위의 설정은 Kafka 생산자 인스턴스 생성을 최소화하고 Kafka 클러스터로 설정되는 TCP 연결 수를 최소화합니다.

This entry was posted in Uncategorized. Bookmark the permalink.