빠른 시작: 자바 및 Apache Maven 사용

이 페이지에서는 Google Cloud 프로젝트를 설정하고 Apache Beam SDK로 Maven 프로젝트를 만들고 Dataflow 서비스에서 예시 파이프라인을 실행하는 방법을 보여줍니다.

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud Dataflow, Compute Engine, Stackdriver Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Datastore, and Cloud Resource Manager API를 사용 설정합니다.

    API 사용 설정

  5. 인증 설정:
    1. Cloud Console에서 서비스 계정 키 만들기 페이지로 이동합니다.

      서비스 계정 키 만들기 페이지로 이동
    2. 서비스 계정 목록에서 새 서비스 계정을 선택합니다.
    3. 서비스 계정 이름 필드에 이름을 입력합니다.
    4. 역할 목록에서 프로젝트 > 소유자.

    5. 만들기를 클릭합니다. 키가 포함된 JSON 파일이 컴퓨터에 다운로드됩니다.
  6. GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 서비스 계정 키가 포함된 JSON 파일의 경로로 설정합니다. 이 변수는 현재 셸 세션에만 적용되므로, 새 세션을 열 경우, 변수를 다시 설정합니다.

  7. Cloud Storage 버킷 만들기:
    1. Cloud Console에서 Cloud Storage 브라우저 페이지로 이동합니다.

      Cloud Storage 브라우저 페이지로 이동

    2. 버킷 만들기를 클릭합니다.
    3. 버킷 만들기 대화상자에서 다음 속성을 지정합니다.
      • 이름: 고유한 버킷 이름입니다. 버킷 네임스페이스는 전역적이며 전체 공개로 표시되기 때문에 버킷 이름에 민감한 정보를 포함하면 안 됩니다.
      • 기본 스토리지 클래스: 스탠더드
      • 버킷 데이터를 저장할 위치입니다.
    4. 만들기를 클릭합니다.
  8. JDK(Java Development Kit) 버전 8을 다운로드하고 설치합니다. JAVA_HOME 환경 변수가 설정되어 있고 JDK 설치를 가리키는지 확인합니다.
  9. 사용 중인 특정 운영체제의 Maven 설치 가이드를 따라 Apache Maven을 다운로드하고 설치합니다.

WordCount 코드 가져오기

Apache Beam SDK는 데이터 파이프라인용 오픈소스 프로그래밍 모델입니다. 이러한 파이프라인은 Apache Beam 프로그램으로 정의하고 Dataflow와 같은 실행기를 선택하여 파이프라인을 실행할 수 있습니다.

Maven Archetype Plugin을 사용하여 Apache Beam SDK의 WordCount 예시를 포함한 Maven 프로젝트를 만듭니다. 컴퓨터의 디렉터리에서 다음과 같이 셸 또는 터미널에서 mvn archetype:generate 명령어를 실행합니다.

$ mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.22.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

명령어를 실행하면 현재 디렉터리 아래에 word-count-beam이라는 새 디렉터리가 표시됩니다. word-count-beam에는 간단한 pom.xml 파일 및 텍스트 파일의 단어 수를 집계하는 일련의 예시 파이프라인이 포함되어 있습니다.

$ cd word-count-beam/

$ ls
pom.xml	src

$ ls src/main/java/org/apache/beam/examples/
DebuggingWordCount.java	WindowedWordCount.java	common
MinimalWordCount.java	WordCount.java

이 예시에 사용된 Apache Beam 개념에 대한 자세한 안내는 WordCount 예시 둘러보기를 참조하세요. 다음 예시에서는 WordCount.java를 실행합니다.

WordCount를 로컬에서 실행

word-count-beam 디렉터리에서 다음 명령어를 실행하여 로컬에서 WordCount를 실행합니다.

$ mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=counts"
출력 파일의 접두어는 counts이며 word-count-beam 디렉터리에 기록됩니다. 여기에는 입력 텍스트의 고유 단어와 각 단어의 발생 횟수가 포함됩니다.

Dataflow 서비스에서 WordCount 실행

Dataflow 서비스에서 WordCount를 빌드하고 실행합니다.

  • --project 인수에 Google Cloud 프로젝트의 프로젝트 ID를 지정합니다.
  • --stagingLocation--output 인수에, 경로의 일부로 만든 Cloud Storage 버킷의 이름을 지정합니다.

  • --region 인수에는 Dataflow 리전 엔드포인트를 지정합니다.
$ mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner \
      --region=<REGION>"

결과 보기

  1. Dataflow 웹 UI를 엽니다.
    Dataflow 웹 UI로 이동

    초기 상태실행 중wordcount 작업이 나타난 후 성공으로 상태가 바뀝니다.

    Cloud Dataflow 작업
  2. Google Cloud Console에서 Cloud Storage 브라우저를 엽니다.
    Cloud Storage 브라우저로 이동

    버킷에서 작업을 통해 만든 출력 파일 및 스테이징 파일을 확인할 수 있습니다.

    Cloud Storage 버킷

삭제

이 빠른 시작에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

  1. Cloud Console에서 Cloud Storage 브라우저 페이지로 이동합니다.

    Cloud Storage 브라우저 페이지로 이동

  2. 삭제하려는 버킷의 체크박스를 클릭합니다.
  3. 버킷을 삭제하려면 삭제 를 클릭합니다.

다음 단계