導航:首頁 > 配伺服器 > flink如何在伺服器運行

flink如何在伺服器運行

發布時間:2022-06-05 20:57:30

A. Apache Flink是什麼

Flink為流處理和批處理應用公用一個通用的引擎。
1、數據量&吞吐量&延遲性
Flink 的流處理引擎只需要很少配置就能實現高吞吐率和低延遲。
2、支持 Event Time 和亂序事件
Flink 支持了流處理和 Event Time 語義的窗口機制。
Event time 使得計算亂序到達的事件或可能延遲到達的事件更加簡單。
3、狀態計算的 exactly-once 語義
流程序可以在計算過程中維護自定義狀態。
Flink 的 checkpointing 機制保證了即時在故障發生下也能保障狀態的 exactly once 語義。
4、高度靈活的流式窗口
Flink 支持在時間窗口,統計窗口,session 窗口,以及數據驅動的窗口
窗口可以通過靈活的觸發條件來定製,以支持復雜的流計算模式。
5、帶反壓的連續流模型
數據流應用執行的是不間斷的(常駐)operators。
Flink streaming 在運行時有著天然的流控:慢的數據 sink 節點會反壓(backpressure)快的數據源(sources)。
6、容錯性
Flink 的容錯機制是基於 Chandy-Lamport distributed snapshots 來實現的。
這種機制是非常輕量級的,允許系統擁有高吞吐率的同時還能提供強一致性的保障。
7、Batch 和 Streaming 一個系統流處理和批處理共用一個引擎
Flink 為流處理和批處理應用公用一個通用的引擎。批處理應用可以以一種特殊的流處理應用高效地運行。
8、內存管理
Flink 在 JVM 中實現了自己的內存管理。
應用可以超出主內存的大小限制,並且承受更少的垃圾收集的開銷。
9、迭代和增量迭代
Flink 具有迭代計算的專門支持(比如在機器學習和圖計算中)。
增量迭代可以利用依賴計算來更快地收斂。
10、程序調優
批處理程序會自動地優化一些場景,比如避免一些昂貴的操作(如 shuffles 和 sorts),還有緩存一些中間數據。

B. flink run怎麼根據ID查看日誌

無法根據ID查看日誌

運行中的Flink任務可以直接通過flink web ui查看

查看已退出Flink任務的Log:對於已經結束的yarn應用,flink進程已經退出無法提供webui服務。所以需要通過JobHistoryServer查看保留在yarn上的日誌。

1.進入目標應用後,可以通過logs查看日誌

2.點擊logs進入,可以看到job manager的日誌

C. flink 1.10 1.12區別

flink 1.10 1.12區別在於Flink 1.12 支持了 Flink SQL Kafka upsert connector 。

因為在 Flink 1.10 中,當前這類任務開發對於用戶來說,還是不夠友好,需要很多代碼,同時也會造成 Flink SQL 冗長。

Flink 1.12 SQL Connector 支持 Kafka Upsert Connector,這也是我們公司內部業務方對實時平台提出的需求。

收益:便利用戶有這種需要從 kafka 取最新記錄操作的實時任務開發,比如這種 binlog -> kafka,然後用戶聚合操作,這種場景還是非常多的,這能提升實時作業開發效率,同時 1.12 做了優化,性能會比單純的 last_value 性能要好。

Flink Yarn 作業 On k8s 的生產級別能力是:

Flink Jar 作業已經全部 K8s 化,Flink SQL 作業由於是推廣初期,還是在 Yarn 上面進行運行,為了將實時計算 Flink 全部K8s化。

所以我們 Flink SQL 作業也需要遷移到 K8s,目前 Flink 1.12 已經滿足生產級別的 Flink k8s 功能,所以 Flink SQL K8s 化,打算直接使用社區的 On k8s 能力。

風險:雖然和社區的人溝通,Flink 1.12 on k8s 沒有什麼問題,但是具體功能還是需要先 POC 驗證一下,同時可能社區 Flink on k8s 的能力。

可能會限制我們這邊一些 k8s 功能使用,比如 hostpath volome 以及 Ingress 的使用,這里可能需要改底層源碼來進行快速支持(社區有相關 JIRA 要做)。

D. 怎麼在java的flink中調用python程序

1. 在java類中直接執行python語句
此方法需要引用 org.python包,需要下載Jpython。在這里先介紹一下Jpython。下面引入網路的解釋:

Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的完全實現。Jython也有很多從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其他任何高級語言,它提供了對其實現語言的一切存取。所以Jython不僅給你提供了Python的庫,同時也提供了所有的Java類。這使其有一個巨大的資源庫。
這里我建議下載最新版本的Jpython,因為可以使用的python函數庫會比老版本的多些,目前最新版本為2.7。
下載jar包請點擊Download Jython 2.7.0 - Standalone Jar
下載安裝程序請點擊Download Jython 2.7.0 - Installer
如果使用maven依賴添加的話,使用下面的語句
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
以上准備好了,就可以直接在java類中寫python語句了,具體代碼如下:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("a=[5,2,3,9,4,0]; ");
interpreter.exec("print(sorted(a));"); //此處python語句是3.x版本的語法
interpreter.exec("print sorted(a);"); //此處是python語句是2.x版本的語法
輸出結果如下:這里會看到輸出的結果都是一樣的,也就是說Jpython兼容python2.x和3.x版本的語句,運行速度會比直接運行python程序稍慢一點。
但是每次運行結果都會提示console: Failed to install 」: java.nio.charset.UnsupportedCharsetException: cp0. 這樣看起來很煩,因為每次運行結果都會出現紅色的提示語句,以為是錯誤,程序員應該都不願意看到這一幕,得想個辦法解決。
解決方法如下:
在要執行的代碼上右鍵, Run As>Run Configurations,選擇第二個頁簽Arguments,在VM arguments中添加以下語句
-Dpython.console.encoding=UTF-8
然後Apply->Run就可以了。

E. 哪裡可以找到flink集群部署的詳細步驟

2.解壓
上傳至五個節點的相同目錄,執行如下命令解壓:

tar xzf flink-1.3.1-bin-hadoop26-scala_2.11.tgz

3.配置master節點
選擇一個 master節點(JobManager)然後在conf/flink-conf.yaml中設置jobmanager.rpc.address 配置項為該節點的IP 或者主機名。確保所有節點有有一樣的jobmanager.rpc.address 配置。
4.配置slaves
將所有的 worker 節點 (TaskManager)的IP 或者主機名(一行一個)填入conf/slaves 文件中。
5.啟動flink集群

bin/start-cluster.sh

6.注意

F. flink組件擅長什麼

nk擅長處理無界和有界數據集。精確控制時間和狀態使Flink的運行時能夠在無界流上運行任何類型的應用程序。有界流由演算法和數據結構內部處理,這些演算法和數據結構專門針對固定大小的數據集而設計,從而產生出色的性能。

閱讀全文

與flink如何在伺服器運行相關的資料

熱點內容
解壓視頻爆笑大全 瀏覽:885
麗水西域廣場解壓樂園 瀏覽:879
mysql命令行導出資料庫 瀏覽:328
sstf最短尋到時間優先演算法 瀏覽:344
linuxclosesocket 瀏覽:774
javajsp上傳文件 瀏覽:834
mac網頁源碼對應的標簽 瀏覽:99
java問號表達式 瀏覽:904
哈利波特不同伺服器什麼意思 瀏覽:139
鴻蒙系統如何退回安卓99 瀏覽:537
csc編譯器響應文件 瀏覽:100
電信王卡包含什麼app 瀏覽:662
可用網站伺服器地址 瀏覽:445
app拉新推廣有什麼方法 瀏覽:854
2b2t電腦伺服器地址是多少 瀏覽:420
php返回值類型 瀏覽:920
閃步app是什麼怎麼賺錢 瀏覽:372
程序員怎麼信任一個人 瀏覽:325
ai創造的程序員之歌 瀏覽:819
程序員的構造函數 瀏覽:342