《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建執行簡單程式入門
準備工作
1、安裝檢視 Java 的版本號,推薦使用 Java 8。
安裝 Flink
2、在 Mac OS X 上安裝 Flink 是非常方便的。推薦通過 homebrew 來安裝。
brew install apache-flink
複製程式碼
3、檢查安裝:
flink --version
複製程式碼
結果:
Version: 1.6.0, Commit ID: ff472b4
複製程式碼
4、啟動 flink
[email protected] /usr/local/Cellar/apache-flink/1.6.0/libexec/bin ./start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host zhisheng.
Starting taskexecutor daemon on host zhisheng.
複製程式碼
接著就可以進入 web 頁面(http://localhost:8081/) 檢視
demo
1、新建一個 maven 專案
建立一個 SocketTextStreamWordCount 檔案,加入以下程式碼:
package com.zhisheng.flink;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;
/**
* Created by zhisheng_tian on 2018/9/18
*/
public class SocketTextStreamWordCount {
public static void main (String[] args) throws Exception {
//引數檢查
if (args.length != 2) {
System.err.println("USAGE:\nSocketTextStreamWordCount <hostname> <port>");
return;
}
String hostname = args[0];
Integer port = Integer.parseInt(args[1]);
// set up the streaming execution environment
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//獲取資料
DataStreamSource<String> stream = env.socketTextStream(hostname, port);
//計數
SingleOutputStreamOperator<Tuple2<String, Integer>> sum = stream.flatMap(new LineSplitter())
.keyBy(0)
.sum(1);
sum.print();
env.execute("Java WordCount from SocketTextStream Example");
}
public static final class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> {
@Override
public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) {
String[] tokens = s.toLowerCase().split("\\W+");
for (String token: tokens) {
if (token.length() > 0) {
collector.collect(new Tuple2<String, Integer>(token, 1));
}
}
}
}
}
複製程式碼
接著進入工程目錄,使用以下命令打包。
mvn clean package -Dmaven.test.skip=true
複製程式碼
然後我們開啟監聽 9000 埠:
nc -l 9000
複製程式碼
最後進入 flink 安裝目錄 bin 下執行以下命令跑程式:
flink run -c com.zhisheng.flink.SocketTextStreamWordCount /Users/zhisheng/IdeaProjects/flink/word-count/target/original-word-count-1.0-SNAPSHOT.jar 127.0.0.1 9000
複製程式碼
注意換成你自己專案的路徑。
執行完上述命令後,我們可以在 webUI 中看到正在執行的程式:
我們可以在 nc 監聽埠中輸入 text,比如:
然後我們通過 tail 命令看一下輸出的 log 檔案,來觀察統計結果。進入目錄 apache-flink/1.6.0/libexec/log,執行以下命令:
tail -f flink-zhisheng-taskexecutor-0-zhisheng.out
複製程式碼
注意:切換成你自己的路徑和檢視自己的目錄。
總結
本文描述瞭如何在 Mac 電腦上安裝 Flink,及執行它。接著通過一個簡單的 Flink 程式來介紹如何構建及執行Flink 程式。
關注我
轉載請註明地址:www.54tianzhisheng.cn/2018/09/18/…
另外我自己整理了些 Flink 的學習資料,目前已經全部放到微信公眾號了。你可以加我的微信:zhisheng_tian,然後回覆關鍵字:Flink 即可無條件獲取到。
相關文章
1、《從0到1學習Flink》—— Apache Flink 介紹
2、《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建執行簡單程式入門
3、《從0到1學習Flink》—— Flink 配置檔案詳解
4、《從0到1學習Flink》—— Data Source 介紹
5、《從0到1學習Flink》—— 如何自定義 Data Source ?