大數(shù)據(jù)HelloWorld-Flink實(shí)現(xiàn)WordCount
所有的語(yǔ)言開(kāi)篇都是Hello Word,數(shù)據(jù)處理引擎也有Hello Word。那就是Word Count。MR,Spark,F(xiàn)link以來(lái)開(kāi)篇第一個(gè)程序都是Word Count。那么今天Flink開(kāi)始目標(biāo)就是在本地調(diào)試出Word Count。
單機(jī)安裝Flink
開(kāi)始Flink之前先在本機(jī)嘗試安裝一下Flink,當(dāng)然FLink正常情況下是部署的集群方式。作者比較窮,機(jī)器配置太低開(kāi)不了幾個(gè)虛擬機(jī)。所以只能先演示個(gè)單機(jī)的安裝。
Apache Flink需要在Java1.8+以上的環(huán)境中運(yùn)行 。
所以,先確保自己的JDK版本是1.8包含以上的。
Flink單機(jī)部署非常簡(jiǎn)單,只需安裝下載安裝即可。如果需要與Hadoop版本結(jié)合,那么下載相應(yīng)的Hadoop關(guān)聯(lián)版本即可。如果不與Hadoop結(jié)合就直接下載Scala版即可。我這里就直接下載了Scala2.11的相關(guān)版本。
點(diǎn)擊進(jìn)入Apache頁(yè)面進(jìn)行下載,大小約有283MB。
把下載下來(lái)的壓縮包進(jìn)行解壓即可。
打開(kāi)命令行直接執(zhí)行
/bin/start-cluster.bat
進(jìn)行啟動(dòng)。
瀏覽器打開(kāi) http://localhost:8081
至此在Windows10環(huán)境下即完成Flink的啟動(dòng)。
編寫(xiě)WordCount
因?yàn)镕link是由Scala進(jìn)行開(kāi)發(fā)的,而Scala是基于JVM的一種語(yǔ)言。所以最終也會(huì)轉(zhuǎn)換為JAVA字節(jié)碼文件,所以Flink程序可以由Java、Scala兩種語(yǔ)言都可以進(jìn)行開(kāi)發(fā)。也可以同時(shí)開(kāi)發(fā)。比如Java寫(xiě)一部分代碼,Scala寫(xiě)另一部分代碼??梢詤⒖?lt;Apache Flink利用Maven對(duì)Scala與Java進(jìn)行混編>。
Flink官方提供快速生成工程的兩種工具:SBT與Maven。由于作者比較熟悉Maven,( 或者說(shuō)沒(méi)用過(guò)SBT )。所以直接使用Maven快速創(chuàng)建一個(gè)工程。
Java版本
mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.8.0
Scala版本
mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-scala \ -DarchetypeVersion=1.8.0
按照提示輸入相關(guān)信息,即可生成最終的項(xiàng)目。
├── pom.xml └── src └── main ├── resources │ └── log4j.properties └── scala/java └── org └── myorg └── quickstart ├── BatchJob.scala └── StreamingJob.scala
把工程導(dǎo)入到IDEA中
如果使用Scala的話,那么需要安裝Scala的插件。搜索安裝同時(shí)需要把Scala語(yǔ)言包進(jìn)行安裝。
不知道如何操作可以聯(lián)系我 微信公號(hào)<指尖數(shù)蟲(chóng)>。
package jar; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.common.functions.ReduceFunction; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.operators.DataSource; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.util.Collector; public class BatchJob { public static void main(String[] args) throws Exception { // set up the batch execution environment final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); //讀取目錄下的文件 DataSource<String> data = env.readTextFile("/opt/Server_Packets/log/ServerLog_1_runtime.log"); //把文件中的內(nèi)容按照空格進(jìn)行拆分為 word,1 1 是為了能夠在下面進(jìn)行計(jì)算. data.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { @Override public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception { for (String word : s.split(" ")){ collector.collect(new Tuple2<>(word,1)); } } }) // 按照元組中的第1位進(jìn)行分組 .groupBy(0) // 分組的元組的計(jì)算方式為 value +value 也就是剛才的 同樣的詞 把 1+1 .reduce(new ReduceFunction<Tuple2<String, Integer>>() { @Override public Tuple2<String, Integer> reduce(Tuple2<String, Integer> t2, Tuple2<String, Integer> t1) throws Exception { return new Tuple2<>(t1.f0,t1.f1+ t2.f1); } }) //輸出結(jié)果 .print(); } }
總結(jié)
以上所述是小編給大家介紹的大數(shù)據(jù)HelloWorld-Flink實(shí)現(xiàn)WordCount,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
vscode中使用Autoprefixer3.0無(wú)效的解決方法
這篇文章主要介紹了vscode中使用Autoprefixer3.0無(wú)效的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-062019最新系統(tǒng)學(xué)習(xí)路線零基礎(chǔ)如何轉(zhuǎn)行大數(shù)據(jù)
今天小編給你一個(gè)大數(shù)據(jù)工程師具體的學(xué)習(xí)路線圖。非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-06-06基于ChatGPT使用AI實(shí)現(xiàn)自然對(duì)話的原理分析
ChatGPT是當(dāng)前自然語(yǔ)言處理領(lǐng)域的重要進(jìn)展之一,可以生成高質(zhì)量的文本,可應(yīng)用于多種場(chǎng)景,如智能客服、聊天機(jī)器人、語(yǔ)音助手等。本文將詳細(xì)介紹ChatGPT的原理、實(shí)戰(zhàn)演練和流程圖,幫助讀者更好地理解ChatGPT技術(shù)的應(yīng)用和優(yōu)勢(shì)2023-05-05有意思的數(shù)據(jù)結(jié)構(gòu)默克樹(shù) Merkle tree應(yīng)用介紹
這篇文章主要為大家介紹了有意思的數(shù)據(jù)結(jié)構(gòu)默克樹(shù) Merkle tree應(yīng)用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09百萬(wàn)行WPF項(xiàng)目代碼重構(gòu)記錄分析
這篇文章主要為大家介紹了一次百萬(wàn)行WPF項(xiàng)目代碼的重構(gòu)記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05詳解VScode自動(dòng)補(bǔ)全CSS3前綴插件以及配置無(wú)效的解決辦法
這篇文章主要介紹了詳解VScode自動(dòng)補(bǔ)全CSS3前綴插件以及配置無(wú)效的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06