大数据处理神器Beam

ApacheBeam是统一批处理(Batch)模式和数据流(Stream)处理模式的标准. 在大数据各种框架中,比如进行批处理的MapReduce,实时流处理的Flink,以及SQL交互的Spark SQL等等,把这些开源框架,工具,类库,平台整合到一起,所需要的工作量以及复杂度,可想而知。这也是大数据开发者比较头疼的问题。而整合这些资源的一个解决方案,就是 Apache Beam。
在这里插入图片描述
java快速启动:https://beam.apache.org/get-started/quickstart-java/
将WordCount的Beam程序以多种不同Runner运行
Get the WordCount Code:
在终端中输入以下命令

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

将会下载一段时间,自动会创建一个word-count-beam的文件夹,里面包含pom.xml文件
在这里插入图片描述
可见创建成功
输入tree查看文件夹树结构
在这里插入图片描述
A single Beam pipeline can run on multiple Beam runners, including the ApexRunner, FlinkRunner, SparkRunner or DataflowRunner.
在这里插入图片描述
运行WordCount:
1.DirectRunner

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--inputFile=/home/zq/Desktop/test.txt --output=counts" -Pdirect-runner

讲真,第一次的时候下载这么多jar包,速度是真的慢.
后面从本地加载,就会快很多.
2.SparkRunner

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--runner=SparkRunner --inputFile=/home/zq/Desktop/test.txt 
--output=counts" -Pspark-runner

3.FlinkRunner

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--runner=FlinkRunner --inputFile=/home/zq/Desktop/test.txt 
--output=counts" -Pflink-runner

以Flink为例,其他平台运行方式只是比直接运行多了指定–runner=FlinkRunner和-Pflink-runner
运行时如果你发现spark等的版本不是最新的,可以自己去pom.xml文件中做相应修改,再加载一次就行了
在这里插入图片描述
查看结果:
ls counts*
在这里插入图片描述
在这里插入图片描述
这样,同一份代码(WordCount.java)实现了在不同平台引擎Runner(Flink,Spark等等)上面的运行,并且效果是一样的.类似JVM对于java跨平台性的支持

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值