Java를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법
요약: Flink는 이벤트 시간을 기반으로 하는 분산 스트림 처리 엔진이며 일괄 처리도 지원합니다. 이 기사에서는 Java 언어를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법을 소개하고 해당 코드 예제를 제공합니다.
1. 배경 소개
Flink는 낮은 지연 시간과 높은 처리량을 특징으로 하는 고성능, 고신뢰성 스트림 처리 엔진으로, 무제한 데이터 흐름, 일괄 처리, 반복 등 다양한 시나리오를 처리할 수 있습니다. 계산. Flink는 또한 풍부한 API와 도구는 물론 타사 시스템과의 통합 지원도 제공합니다.
2. 환경 준비
먼저 JDK(Java Development Kit)와 Apache Flink를 설치해야 합니다. 환경 변수가 올바르게 구성되었는지 확인하십시오. 다음 명령을 사용하여 올바르게 설치되었는지 확인할 수 있습니다.
java -version flink --version
3. 스트림 처리 애플리케이션
3.1 프로젝트 생성
먼저 새 Maven 프로젝트를 생성하고 Flink 종속성을 추가합니다. pom.xml 파일에 다음 콘텐츠를 추가합니다.
<dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.9.3</version> </dependency> </dependencies>
3.2 데이터 소스
Flink에서는 스트리밍 데이터 소스를 Source라고 합니다. 다음은 소스 함수를 통해 1부터 100까지의 숫자가 포함된 데이터 스트림을 생성하는 샘플 코드입니다.
DataStream<Integer> stream = env.fromCollection(Arrays.asList(1, 2, 3, ..., 100));
3.3 데이터 변환 및 처리
Flink는 데이터 스트림에 대해 다양한 작업을 수행할 수 있는 풍부한 변환 및 처리 기능을 제공합니다. 다음은 데이터 스트림의 각 요소에 1을 더하고 짝수를 필터링하는 샘플 코드입니다.
DataStream<Integer> result = stream .map(new MapFunction<Integer, Integer>() { @Override public Integer map(Integer value) throws Exception { return value + 1; } }) .filter(new FilterFunction<Integer>() { @Override public boolean filter(Integer value) throws Exception { return value % 2 == 0; } });
3.4 결과 출력
Flink는 콘솔, 파일, 데이터베이스 등과 같은 다양한 대상으로 결과 출력을 지원합니다. 다음은 결과를 콘솔에 출력하는 샘플 코드입니다.
result.print();
3.5 스트림 처리 애플리케이션 실행
마지막으로 실행 함수를 통해 스트림 처리 애플리케이션을 실행합니다.
env.execute("Stream Processing Job");
4. 일괄 처리 애플리케이션
4.1 프로젝트 생성
마찬가지로 Maven에서 프로젝트에 Flink 종속성을 추가합니다.
4.2 데이터 소스
일괄 처리 응용 프로그램의 데이터 소스는 DataSet을 사용합니다. 다음은 fromElements 함수를 통해 문자열이 포함된 데이터 세트를 생성하는 샘플 코드입니다.
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<String> dataSet = env.fromElements("Hello", "World");
4.3 데이터 변환 및 처리
Flink는 데이터 세트에 대해 다양한 작업을 수행할 수 있는 스트림 처리와 유사한 변환 및 처리 기능을 제공합니다. 다음은 데이터 세트의 각 문자열을 대문자로 변환하고 길이가 3보다 큰 문자열을 필터링하는 샘플 코드입니다.
DataSet<String> result = dataSet .map(new MapFunction<String, String>() { @Override public String map(String value) throws Exception { return value.toUpperCase(); } }) .filter(new FilterFunction<String>() { @Override public boolean filter(String value) throws Exception { return value.length() > 3; } });
4.4 결과 출력
스트림 처리 애플리케이션과 유사하게 일괄 처리 애플리케이션도 결과를 다른 형식으로 출력하는 것을 지원합니다. .
4.5 일괄 처리 애플리케이션 실행
실행 함수를 호출하여 일괄 처리 애플리케이션 실행:
result.print();
5. 요약 및 전망
이 기사에서는 Java를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 기본 단계를 소개합니다. , 해당 코드 예제가 제공됩니다. Flink를 사용하면 고성능의 안정적인 스트림 처리 및 일괄 처리 애플리케이션을 신속하게 구축할 수 있으며 다른 시스템과도 통합할 수도 있습니다. 이 기사가 독자들이 Flink를 사용하여 애플리케이션을 개발하고 이를 실제 프로젝트에 적용하는 기본 방법을 이해하고 익히는 데 도움이 되기를 바랍니다.
위 내용은 Java를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!