关于后端:让Apache-Beam在GCP-Cloud-Dataflow上跑起来

简介

在文章《Apache Beam入门及Java SDK开发初体验》中大略讲了Apapche Beam的简略概念和本地运行,本文将解说如何把代码运行在GCP Cloud Dataflow上。

本地运行

通过maven命令来创立我的项目:

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

下面会创立一个目录word-count-beam,外面是一个例子我的项目。做一些简略批改就能够应用了。

先build一次,保障依赖下载胜利:

$ mvn clean package

通过IDEA本地运行一下,增加入参如下:

--output=pkslow-beam-counts --inputFile=/Users/larry/IdeaProjects/pkslow-samples/README.md

解决的文件是README.md,输入后果前缀为pkslow-beam-counts

或者通过命令行来运行也能够:

mvn compile exec:java \
    -Dexec.mainClass=org.apache.beam.examples.WordCount \
    -Dexec.args="--output=pkslow-beam-counts --inputFile=/Users/larry/IdeaProjects/pkslow-samples/README.md"

在GCP Cloud Dataflow上运行

筹备环境

要有对应的Service Account和key,当然还要有权限;

要关上对应的Service;

创立好对应的Bucket,上传要解决的文件。

运行

而后在本地执行命令如下:

$ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
     -Dexec.args="--runner=DataflowRunner --gcpTempLocation=gs://pkslow-dataflow/temp \
                  --project=pkslow --region=us-east1 \
                  --inputFile=gs://pkslow-dataflow/input/README.md --output=gs://pkslow-dataflow//pkslow-counts" \
     -Pdataflow-runner

日志比拟长,它大略做的事件就是把相干Jar包上传到temp目录下,因为执行的时候要援用。如:

Nov 03, 2022 8:41:48 PM org.apache.beam.runners.dataflow.util.PackageUtil tryStagePackage
INFO: Uploading /Users/larry/.m2/repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar to gs://pkslow-dataflow/temp/staging/commons-compress-1.8.1-X8oTZQP4bsxsth-9F7E31Z5WtFx6VJTmuP08q9Rpf70.jar
Nov 03, 2022 8:41:48 PM org.apache.beam.runners.dataflow.util.PackageUtil tryStagePackage
INFO: Uploading /Users/larry/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar to gs://pkslow-dataflow/temp/staging/jackson-mapper-asl-1.9.13-dOegenby7breKTEqWi68z6AZEovAIezjhW12GX6b4MI.jar

查看Bucket,的确有一堆jar包:

接着会创立dataflow jobs开始工作了。能够查看界面的Jobs如下:

点进去能够看到流程和更多细节:

最初到Bucket查看后果也进去了:

代码

代码请看GitHub: https://github.com/LarryDpk/p…

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据