나는 어떻게되는지 알아 내려고합니다 : 여러 개의 socketTextStream에서 프로그램을 읽는 중이고이 텍스트 스트림이 다른 데이터 흐름으로 유입됩니다. 일). 내가 클러스터에서 작업을 실행할 때Flink SocketTextStream 소스를 단일 컴퓨터로 예약
for(int i =0; i< hosts.length; i++) {
DataStream<String> someStream = env.socketTextStream(hosts[i], ports[i]);
DataStream<Tuple2<String, String>> joinedAdImpressions = rawMessageStream.rebalance() ...
}
는 그러나, 나는이 기계의 성능에 대한 심각한 병목 현상 있도록 모든 소스 작업이 하나 개의 시스템에 예약 된 것을 발견 : 그것은 아래에 비슷한 보인다. 어떤 아이디어가 이런 일이 생길까요?
감사합니다.
나는 socketTextStream을 많이 뒤죽박죽로 사용하지 않으므로 방향을 조사 할 것을 권장 할 수 있습니다. kafka 항목을 데이터 소스 (env.addSource (FlinkKafkaConsumer))로 사용하는 경우 클러스터에 파티션이 하나만있는 경우 kafka 데이터 소스에서받은 모든 데이터는 단일 시스템으로 만 전송됩니다. 따라서 병렬 처리가 3 인 경우 데이터는 3 중 하나를 통해 만 전달됩니다 (데이터가 한 컴퓨터에서만 흐른다는 의미인지 확인하고 싶음). 다른 종류의 데이터 소스를 사용하는 것과 비슷합니다. – Jicaar