共计 1999 个字符,预计需要花费 5 分钟才能阅读完成。
简介
在文章《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…
正文完