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跨平台性的支持

大数据处理神器Beam相关推荐

  1. 大数据时代-你需要了解的大数据处理神器-Hadoop

    hadoop 1.1 hadoop 介绍 1.2 hadoop 组件介绍 Hadoop的核心生态架构 核心组件 2.1 hadoop 搭建 2.1.1 hadoop 下载 2.1.2 准备环境 2.1 ...

  2. python大数据免费_安利大家一个Python大数据分析神器

    对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不太了解,今天就推荐一下这个神器.StB免费资源网 1.什么是Dask?StB免费资源网 Pand ...

  3. 面向大数据处理的数据流编程模型和工具综述

    点击上方蓝字关注我们 面向大数据处理的数据流编程模型和工具综述 邹骁锋, 阳王东, 容学成, 李肯立, 李克勤 湖南大学信息科学与工程学院,湖南 长沙 410008 论文引用格式: 邹骁锋, 阳王东, ...

  4. visualize python_安利一个Python大数据分析神器!

    对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不太了解,今天就推荐一下这个神器. 1.什么是Dask? Pandas和Numpy大家都不陌生了, ...

  5. 大数据处理需要用到的编程语言开发语言

    你有一个大数据项目,你知道问题领域(problem domain),也知道使用什么基础设施,甚至可能已决定使用哪种框架来处理所有这些数据,但是有一个决定迟迟未能做出:我该选择哪种语言?(或者可能更有针 ...

  6. Python大数据分析神器---Dask

    对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不太了解,今天就推荐一下这个神器. 1.什么是Dask? Pandas和Numpy大家都不陌生了, ...

  7. 讲python的东哥_安利一个Python大数据分析神器!

    对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不太了解,今天就推荐一下这个神器. 1.什么是Dask?Pandas和Numpy大家都不陌生了,代 ...

  8. 大数据处理也要安全--关于MaxCompute的安全科普

    [TOC] 1.企业大数据处理现状 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百GB.TB乃至PB)级别.基于此,阿里云推出有了一套快速.完全托 ...

  9. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)

    本文节选自CCF大数据教材系列丛书之<大数据处理>,本书由华中科技大学金海教授主编,包括大数据处理基础技术.大数据处理编程与典型应用处理.大数据处理系统与优化三个方面.本教材以大数据处理编 ...

最新文章

  1. 总结:DCIC算法分析赛完整方案分享!
  2. Mysql 提示:Communication link failure
  3. proe50安装方法64位_3ds max 2021 安装教程【64位】
  4. Android开源控件----Android显示GIF图像控件------android-gif-drawable
  5. P4770:你的名字(SAM、线段树合并)
  6. markdown文件转word文件
  7. 《网络攻防实践》 课程教学
  8. [Yii Framework] Another method to run cron in the share space server.
  9. 称重管理系统使用说明_车辆智能称重管理系统车牌识别
  10. java函数式编程的好处
  11. c语言竞赛信息管理系统,一种基于ACM程序设计竞赛在线评测系统解决方案
  12. 2021-2027全球及中国数控钻机行业研究及十四五规划分析报告
  13. 一文搞懂 RabbitMQ 延时队列(订单定时取消为例)
  14. Python 经典例题
  15. 广州uc优视java面试_UC优视(UC浏览器)面试经验
  16. UltraLAB台式图形工作站(海量计算王者~高性能计算工作站 EX620介绍)
  17. libuv源码分析(1)事件循环分析
  18. 快速提高计算能力——matlab多项式计算
  19. asp.net 著名网站
  20. 减加乘除全选不选dom验证

热门文章

  1. 2021年年终总结 2022年计划
  2. 第三步:脑波提取alpha,beta,delta,theta
  3. C# EF框架使用实例
  4. NandFlash操作详解(一)
  5. 【2018亚太数据中心峰会】李典林:节能增效,提升数据中心产出率
  6. 《Java从小白到大牛》纸质版已经上市了!!
  7. java堆栈内存_关于 js 与 Java 堆栈内存的一些疑惑
  8. js用for循环做九九乘法表
  9. 基于matlab的蓝色车牌识别(车牌定位)
  10. 楚留香水龙吟是正版服务器吗,楚留香手游哪些服务器是互通的 安卓/ios互通服务器汇总一览...