大数据处理神器Beam
ApacheBeam是統(tǒng)一批處理(Batch)模式和數(shù)據(jù)流(Stream)處理模式的標準. 在大數(shù)據(jù)各種框架中,比如進行批處理的MapReduce,實時流處理的Flink,以及SQL交互的Spark SQL等等,把這些開源框架,工具,類庫,平臺整合到一起,所需要的工作量以及復(fù)雜度,可想而知。這也是大數(shù)據(jù)開發(fā)者比較頭疼的問題。而整合這些資源的一個解決方案,就是 Apache Beam。
java快速啟動:https://beam.apache.org/get-started/quickstart-java/
將WordCount的Beam程序以多種不同Runner運行:
Get the WordCount Code:
在終端中輸入以下命令
將會下載一段時間,自動會創(chuàng)建一個word-count-beam的文件夾,里面包含pom.xml文件
可見創(chuàng)建成功
輸入tree查看文件夾樹結(jié)構(gòu)
A single Beam pipeline can run on multiple Beam runners, including the ApexRunner, FlinkRunner, SparkRunner or DataflowRunner.
運行WordCount:
1.DirectRunner
講真,第一次的時候下載這么多jar包,速度是真的慢.
后面從本地加載,就會快很多.
2.SparkRunner
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
運行時如果你發(fā)現(xiàn)spark等的版本不是最新的,可以自己去pom.xml文件中做相應(yīng)修改,再加載一次就行了
查看結(jié)果:
ls counts*
這樣,同一份代碼(WordCount.java)實現(xiàn)了在不同平臺引擎Runner(Flink,Spark等等)上面的運行,并且效果是一樣的.類似JVM對于java跨平臺性的支持
總結(jié)
以上是生活随笔為你收集整理的大数据处理神器Beam的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp模板的使用
- 下一篇: springboot配置mybatis