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. Android中Broadcast
  2. 【原创】VB利用堆栈实现算术表达式计算
  3. 配置ssl证书_Nginx监听443端口配置SSL证书
  4. mysql sleep连接过多的问题解决
  5. ITK:计算梯度各向异性扩散
  6. android jni new/delete 和 new[]/delete[]
  7. HIT 2060 Fibonacci Problem Again
  8. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用
  9. ajax中tooltip,工具提示插件——tooltip
  10. Google和微软哪个更可怕?
  11. lisp 多边形象限_AutoLISP图程序设计.ppt
  12. (已完成)java socket-套接字实现类SocketImpl.md
  13. 楼天成,ACRush
  14. java双向循环链表
  15. Kali内Nmap端口扫描与高级扫描
  16. python找不到解释器_为什么pycharm找不到python解释器
  17. 51单片机驱动LCD1602液晶
  18. 高斯混合模型(GMM)和高斯过程回归(GPR)的学习
  19. 高德地图和百度地图数据下载
  20. unity添加天空盒的两种方式

热门文章

  1. C语言— —基本数据类型
  2. [原创][从mambo到joomla的迁移实战之三]网站由mambo迁移到joomla(未完待续)
  3. 你知道 “ 晚安 ” 是什么意思吗 ?千万别顺便说
  4. 正交调制原理(未完)
  5. python绘制小提琴图片_手把手教你用 Origin 绘制小提琴图
  6. google地图定位小Demo
  7. 广联达7/29第二题(菜鸟编写)
  8. 3389之永不查杀的后门shift后门代码
  9. 代理服务器的原理及用法(解决上网时间限制问题)
  10. 云计算和云安全快速入门