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

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

WBOY
풀어 주다: 2023-09-20 08:29:07
원래의
711명이 탐색했습니다.

如何使用Java开发一个基于Apache Flink的流处理和批处理应用

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

소개:
Apache Flink는 높은 처리량, 높은 안정성 및 저렴한 비용을 갖춘 강력한 오픈 소스 스트림 처리 및 일괄 처리 프레임워크입니다. 형질. 이 기사에서는 Java를 사용하여 Apache Flink 기반의 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법을 소개하고 자세한 코드 예제를 제공합니다.

1. 환경 준비

  1. JDK 설치: 컴퓨터에 JDK(Java Development Kit)가 설치되어 있는지 확인하세요. 오라클 공식 홈페이지에서 JDK를 다운로드하고 공식 가이드에 따라 설치하시면 됩니다.
  2. Apache Flink 다운로드: Apache Flink 공식 웹사이트에서 최신 버전의 Flink를 다운로드할 수 있습니다. 다운로드한 zip 파일을 적당한 위치에 압축을 푼다.
  3. IDE 설치: 개발에 적합한 IDE를 선택할 수 있습니다. Eclipse 또는 IntelliJ IDEA를 사용하는 것이 좋습니다.

2. 프로젝트 생성

  1. IDE에서 새 Java 프로젝트를 생성하고 이름을 "flink-demo"로 지정합니다.
  2. 다운로드하고 압축을 푼 Apache Flink 파일을 프로젝트의 루트 디렉터리에 복사합니다.

3. 종속성 소개

  1. 프로젝트의 build.gradle 파일에 다음 종속성을 추가합니다.

    dependencies {
     compileOnly project(":flink-dist")
     compile group: 'org.apache.flink', name: 'flink-core', version: '1.12.2'
     compile group: 'org.apache.flink', name: 'flink-streaming-java', version: '1.12.2'
     compile group: 'org.apache.flink', name: 'flink-clients', version: '1.12.2'
    }
    로그인 후 복사
  2. IDE에서 프로젝트 루트 디렉터리를 마우스 오른쪽 버튼으로 클릭하고 "Refresh Gradle Project"를 선택하여 프로젝트의 종속성을 업데이트합니다. .

4. Flink 스트림 처리 애플리케이션 구현

  1. src/main/java 디렉토리에 새 패키지를 만들고 이름을 "com.flinkdemo.stream"으로 지정합니다.
  2. "StreamProcessingJob"이라는 Java 클래스를 만들고 여기에 스트림 처리 논리를 구현합니다.

    package com.flinkdemo.stream;
    
    import org.apache.flink.streaming.api.datastream.DataStream;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    public class StreamProcessingJob {
    
     public static void main(String[] args) throws Exception {
         // 创建一个执行环境
         final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
         // 从socket接收数据流
         DataStream<String> text = env.socketTextStream("localhost", 9999);
    
         // 打印接收到的数据
         text.print();
    
         // 启动执行环境
         env.execute("Stream Processing Job");
     }
    }
    로그인 후 복사
  3. IDE에서 StreamProcessingJob 클래스를 마우스 오른쪽 버튼으로 클릭하고 "다음 계정으로 실행" -> "Java 애플리케이션"을 선택하여 애플리케이션을 시작합니다.

5. Flink 배치 애플리케이션 구현

  1. src/main/java 디렉토리에 새 패키지를 만들고 이름을 "com.flinkdemo.batch"로 지정합니다.
  2. "BatchProcessingJob"이라는 Java 클래스를 만들고 여기에 일괄 처리 논리를 구현합니다.

    package com.flinkdemo.batch;
    
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.DataSet;
    import org.apache.flink.api.java.tuple.Tuple2;
    
    public class BatchProcessingJob {
    
     public static void main(String[] args) throws Exception {
         // 创建一个执行环境
         final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    
         // 从集合创建DataSet
         DataSet<Tuple2<String, Integer>> dataSet = env.fromElements(
                 new Tuple2<>("A", 1),
                 new Tuple2<>("A", 2),
                 new Tuple2<>("B", 3),
                 new Tuple2<>("B", 4),
                 new Tuple2<>("C", 5)
         );
    
         // 根据key进行分组,并计算每组的元素个数
         DataSet<Tuple2<String, Integer>> result = dataSet
                 .groupBy(0)
                 .sum(1);
    
         // 打印结果
         result.print();
    
         // 执行任务
         env.execute("Batch Processing Job");
     }
    }
    로그인 후 복사
  3. IDE에서 BatchProcessingJob 클래스를 마우스 오른쪽 버튼으로 클릭하고 "다음 계정으로 실행" -> "Java 애플리케이션"을 선택하여 애플리케이션을 시작합니다.

결론:
이 기사의 소개를 통해 Java를 사용하여 Apache Flink 기반의 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법을 배웠습니다. 필요에 따라 스트리밍 및 일괄 처리 애플리케이션에 더 많은 로직을 추가하고 Flink의 기능을 더 많이 탐색할 수 있습니다. Flink 개발 여정에서 좋은 결과를 얻으시기 바랍니다!

위 내용은 Java를 사용하여 Apache Flink 기반 스트림 처리 및 일괄 처리 애플리케이션을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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