파일 시스템에서 파일을 배치하는 코드를 작성하는 경우, 당신은 작업 추적기에 스파크 작업을 제출하기 위해 같은 코드를 사용할 수 있습니다. 작업 추적기가 작업 큐가되고 제출 된 파일을 Spark 작업으로 처리합니다.
이것은 # 1을 구현하는보다 단순한 방법이지만 단점이 있습니다. 주된 단점은 리소스 할당을 조정하여 데이터 세트가 매우 큰 경우에 할당하지 않는지 확인해야한다는 것입니다. 작업에 대한 자원을 과도하게 할당하면 작업이 자원을 기다리는 동안 작업 대기열이 잠재적으로 커집니다. 장점은 유지 보수 및 문제 해결을 위해 움직이는 부품이별로 없다는 것입니다.
nifi를 사용하여 큰 파일을 잘라내어 조각을 스트림으로 처리하면 클러스터 리소스를보다 효과적으로 활용할 수 있습니다. 클러스터가이 데이터 처리 중 임의의 작업을 처리하는 중이면 더 나은 방법 일 수 있습니다. 여기서 단점은 하나의 트랜잭션 컨텍스트에서 단일 파일의 모든 부분을 처리하기 위해 추가 작업을해야한다는 것일 수 있습니다. Kafka가 제공 한 데이터를 잃지 않으려면 몇 가지 추가 작업을 수행해야 할 수 있습니다.
일괄 작업의 경우에는 방법 2가 과도한 사용으로 간주 될 수 있습니다. CSV 파일이 잠재적으로 큰 파일 인 경우에도 CSV 파일을 읽는 설정이 매우 복잡해 보입니다. CSV 파일의 속도, CSV에 대한 끊임없이 변화하는 소스 또는 높은 오류율에 문제가있는 경우 NiFi가 많은 의미를 갖습니다.
최상의 솔루션을 제안하기가 어렵습니다. 그것이 나라면, # 1의 변형으로 시작해서 먼저 작동하게 할 것입니다. 그런 다음 입력 파일에서 예외를 처리 할 때 허용되는 수준의 정확도로 접근 방식이 수행되는 방식에 따라 더 많은 시스템 부분을 도입하여 더 효과적으로 작동하게 만듭니다. 가장 큰 문제는 대규모 처리 중에 입력 파일의 오류를 식별하려는 것입니다.
정보에 대한 의견을 보내 주셔서 감사합니다. 사실, 우리는 두 번째 것을 선택했습니다. 사용 사례와 더 관련이 있기 때문에 –