首页 > 其他分享 >让Apache Beam在GCP Cloud Dataflow上跑起来

让Apache Beam在GCP Cloud Dataflow上跑起来

时间:2023-02-02 00:23:05浏览次数:71  
标签:dataflow pkslow Beam beam Dataflow GCP org apache --

简介

在文章《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/pkslow-samples

标签:dataflow,pkslow,Beam,beam,Dataflow,GCP,org,apache,--
From: https://www.cnblogs.com/larrydpk/p/17084568.html

相关文章

  • 在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)
    1简介CloudSQL是GCP上的关系型数据库,常用的有三种方式来创建:(1)界面操作(2)命令行gcloud(3)Terraform在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操......
  • 在GCP上创建GCE的三种方式(Console,gcloud,Terraform)
    1简介如果要选择GCP为云平台,则经常需要创建GCE(GoogleComputeEngine),有以下几种方式:(1)在浏览器创建(2)命令gcloud(3)Terraform在开始之前,可以查看:《初始化一......
  • 通过Terraform创建GCP Pubsub
    1简介Terraform是管理许多平台的基础设施的工具,如AWS、GCP和Azure。这篇文章将讲解如何通过Terraform来管理GCPPub/Sub。创建GCP项目请参考:初始化一个GCP项目并用gclou......
  • 初始化一个GCP项目并用gcloud访问操作
    1简介谷歌云GCP(GoogleCloudPlatform)是由Google提供的云平台,还是为用户提供了许多免费的产品,还是可以尝试一下的。对于学习或者小项目,都可以使用。2创建一个新项目要......
  • CTC的训练与推理之Greedy Decoder, Beam Search,CTC Loss, RNNT Loss
    模型流程:t时刻输入x(t),t-1时刻输出y`(t-1),t时刻的输出y`(t)为:由x(t)和y`(t-1)作为输入得到的预测值训练:采用TeacherForcing的策略,在t时刻,并不是使用上一时刻的预测值y`(......
  • [华为SDK]Could not resolve com.huawei.agconnect:agcp:1.6.x.300解决方法
    接入huaweiSDK过程中出现的问题,解决时需要关注项目根路径下的gradle脚本文件这三个地方:首先,华为的maven源需要放置在最前边其次,根gradle依赖项中也需要加入相关依赖最后,记得......
  • 建筑软件解决方案丨Bluebeam简介
    BluebeamRevu和BluebeamCloud让团队可以灵活地在任何地方通过设计、构建和移交进行协作。 桌面和云协作解决方案桌面和云协作解决方案基于开放标准构建,因此......
  • HDU5091 Beam Cannon
    \(HDU5091\)\(Beam\)\(Cannon\)一、题目大意有\(n\)个点(\(n<=10000\)),点的坐标绝对值不超过\(20000\),然后问你用一个\(w*h(1<=w,h<=40000)\)的矩形,矩形的边平行于坐标......
  • Antenna beamwidth calculator
    Antennabeamwidthcalculatorsee: https://www.satsig.net/pointing/antenna-beamwidth-calculator.htm DiameterofyoursatellitedishFrequencyEfficiency......
  • Spring Cloud GCP(五)
    15.4.Firestore操作和模板​​FirestoreOperations​​及其实现提供了Spring开发人员熟悉的模板模式。​​FirestoreTemplate​​使用SpringDataCloudFirestore提......