> Java > java지도 시간 > 본문

Java를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법

WBOY
풀어 주다: 2023-09-21 13:21:19
원래의
707명이 탐색했습니다.

Java를 사용하여 Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿