1. 程式人生 > >flink的探索(low文件多多指教)

flink的探索(low文件多多指教)



  1. 執行時層以JobGraph形式接收程式。JobGraph即為一個一般化的並行資料流圖(data flow),它擁有任意數量的Task來接收和產生data stream。
  2. DataStream API和DataSet API都會使用單獨編譯的處理方式生成JobGraph。DataSet API使用optimizer來決定針對程式的優化方法,而DataStream API則使用stream builder來完成該任務。
  3. Gelly 影象處理,flinkml機器學習,複雜事件處理cep
原理 1.流,轉換,操作符 Flink程式是由Stream和Transformation這兩個基本構建塊組成,其中Stream是一箇中間結果資料,而Transformation是一個操作,它對一個或多個輸入Stream進行計算處理,輸出一個或多個結果Stream。
2.見圖
3.任務,操作符鏈 flink分散式執行環境中,會將多個操作子任務串起來組成一個operator chain,實際上就是一個執行鏈,每個執行鏈會在taskmanager上一個獨立的執行緒中執行。 4.時間 處理stream中的記錄時,記錄中通常會包含各種典型的時間欄位:
  1. Event Time:表示事件建立時間
  2. Ingestion Time:表示事件進入到Flink Dataflow的時間
  3. Processing Time:表示某個Operator對事件進行轉換的本地系統時間
Flink使用WaterMark衡量時間的時間,WaterMark攜帶時間戳t,並被插入到stream中。
1.WaterMark的含義是所有時間t'< t的事件都已經發生。 2.針對亂序的的流,WaterMark至關重要,這樣可以允許一些事件到達延遲,而不至於過於影響window視窗的計算。 3.並行資料流中,當Operator有多個輸入流時,Operator的event time以最小流event time為準。 5.視窗 flink支援基於時間視窗操作,也支援基於資料的視窗操作:
視窗分類: 1.按分割標準劃分:timewindow,countwindow 2.按視窗行為劃分:tumbling window,sliding window,自定義視窗,sliding window可以新增觸發時間。
6.容錯
  1. 出現一個Barrier,在該Barrier之前出現的記錄都屬於該Barrier對應的Snapshot,在該Barrier之後出現的記錄屬於下一個Snapshot。
  2. 來自不同Snapshot多個Barrier可能同時出現在資料流中,也就是說同一個時刻可能併發存在多個Snapshot。
  3. 當一箇中間(Intermediate)Operator接收到一個Barrier後,它會發送Barrier到屬於該Barrier的Snapshot的資料流中,等到Sink Operator接收到該Barrier後會向Checkpoint Coordinator確認該Snapshot,直到所有的Sink Operator都確認了該Snapshot,才被認為完成了該Snapshot。
圖解釋
對齊: 當Operator接收到多個輸入的資料流時,需要在Snapshot Barrier中對資料流進行排列對齊:
  1. Operator從一個incoming Stream接收到Snapshot Barrier n,然後暫停處理,直到其它的incoming Stream的Barrier n(否則屬於2個Snapshot的記錄就混在一起了)到達該Operator
  2. 接收到Barrier n的Stream被臨時擱置,來自這些Stream的記錄不會被處理,而是被放在一個Buffer中。
  3. 一旦最後一個stream接收到Barrier n,Operator會emit所有暫存在Buffer中的記錄,然後向Checkpoint Coordinator傳送Snapshot n。
  4. 繼續處理來自多個Stream的記錄
7.排程 在JobManager端,會接收到Client提交的JobGraph形式的Flink Job,JobManager會將一個JobGraph轉換對映為一個ExecutionGraph,ExecutionGraph是JobGraph的並行表示,也就是實際JobManager排程一個Job在TaskManager上執行的邏輯檢視。
8.迭代 機器學習和圖計算應用,都會使用到迭代計算,Flink通過在迭代Operator中定義Step函式來實現迭代演算法,這種迭代演算法包括Iterate和Delta Iterate兩種型別。 9.back pressure 監控 流處理系統中,當下遊Operator處理速度跟不上的情況,如果下游Operator能夠將自己處理狀態傳播給上游Operator,使得上游Operator處理速度慢下來就會緩解上述問題,比如通過告警的方式通知現有流處理系統存在的問題。 Flink Web介面上提供了對執行Job的Backpressure行為的監控,它通過使用Sampling執行緒對正在執行的Task進行堆疊跟蹤取樣來實現。 預設情況下,JobManager會每間隔50ms觸發對一個Job的每個Task依次進行100次堆疊跟蹤呼叫,過計算得到一個比值,例如,radio=0.01,表示100次中僅有1次方法呼叫阻塞。Flink目前定義瞭如下Backpressure狀態: OK: 0 <= Ratio <= 0.10 LOW: 0.10 < Ratio <= 0.5 HIGH: 0.5 < Ratio <= 1 部署 java環境
1.官網下載flink並解壓具體命令 tar -zxvf flink-* (想該名的改名字 mv 原來名字 修改的名字) 2.cd flink-1.3/conf/ 修改裡面的flink-conf.yaml配置檔案的內容
taskmanager.tmp.dirs:/tmp 臨時檔案的目錄(屬於上面配置,截圖沒截到) 注:上面圖片引數說明 1.master的主機名或者IP 2.jobmanager監聽的埠 3.jobmanager的記憶體引數 4.taskmanager可用的記憶體 5.每臺taskmanager可用的solt數目,一般設定CPU的core數 6.numtaskmanagers(slave的個數)

這個是web UI介面的埠號 3.修改conf/masters檔案 vi masters 主節點ip:port 比如10.10.198.12:8081 4.修改conf/slaves檔案 vi slaves 從節點的IP(有幾臺寫幾臺) 每一臺機器都需要配置一致,當主節點配置好之後可以用以下命令進行復制到其他機器 scp -r 要傳的檔名字 傳到機器的使用者名稱(如admin)@傳到機器的ip:傳到機器所在的位置 如:

scp -r masters [email protected]:/home/admin/flink-1.3.2/conf/

相關推薦

flink探索low多多指教

執行時層以JobGraph形式接收程式。JobGraph即為一個一般化的並行資料流圖(data flow),它擁有任意數量的Task來接收和產生data stream。 DataStream API和DataSet API都會使用單獨編譯的處理方式生成JobGraph。DataSet API使用

MYSQL結構日誌待補充

-s 文本編輯 相關 style 錯誤日誌 存儲過程 就是 pass 路徑 要點概論 1. 引言 2. 數據文件 3. 日誌文件 1. 引言   每個 MYSQL 數據庫至少有兩個操作系統文件:一個數據文件和一個日誌文件。   數據文件包含數據和對象,例如表,索引,存儲

案例52-crm練習新增客戶中加入上傳功能struts2上傳

練習 mon onclick open type() cor 自動 not 電話 1 jsp/customer/add.jsp 完整代碼: <%@ page language="java" contentType="text/html; charset=U

Spring Boot入門系列三資源屬性配置

response mage 註意 site spa website 圖片 process ram   Spring Boot 資源文件屬性配置     配置文件是指在resources根目錄下的application.properties或application.yml配置

spark編譯官方翻譯版

原文地址:http://spark.apache.org/docs/latest/building-spark.html#building-a-runnable-distribution Building Apache Spark Apache Maven The Maven-based

Nginx 性能優化配置詳解

pro linux cti size 長時間 並發連接 poll ipv4 服務器端 隨著訪問量的不斷增加,需要對 Nginx 和內核做相應的優化來滿足高並發用戶的訪問,那下面在單臺 Nginx 服務器來優化相關參數。 Nginx.conf 配置優化: worker_

QNX開發最完整圖文教程官方,非官方翻譯

我一直以來,就是一個用著諾基亞的黑莓控,關注BB很久很久了。(事先說明這不是BB10的開發教程,所以大家是黑莓移動應用的開發者可以移步了,這未必是你們想要的資料。;-)在我們正式開發之前,先來閒聊放鬆一下。希望直入主題的,直接從教程開始看就行。 簡介: 下一代黑莓10

Django快取框架詳解官方翻譯來

首先看Django官網的介紹:    動態網站的一個基本權衡就是他們是動態的,每次一個使用者請求一個頁面,web伺服器進行各種各樣的計算-從資料庫查詢到模板渲染到業務邏輯-從而生成站點訪問者看到的頁面。從處理開銷的角度來看,相比標準的從檔案系統讀取檔案的伺服器排程,這是昂貴了

《深入理解Spark》之Spark-Stream概述1官方翻譯版

最近在學英語,學以致用,就嘗試著看Spark的官方文件,並試著翻譯了部分,由於水平有限如果有所疏漏的地方歡迎指正 * Spark Stream Overview * Spark Streaming

Hystrix配置簡單說明官方簡譯

詳細資訊,見官方文件。 Hystrix屬性的4中優先順序 1. 內建全域性預設值(Global default from code) 如果下面3種都沒有設定,預設是使用此種,後面用“預設值”代指這種。 2. 動態全域性預設屬性(Dynamic global default property) 可以通過屬性配

現代中小企業IT基礎平臺建設 - 完整案例實戰08_共享應用

共享 客戶端 gpo 結果 模板 還原備份 6.2 平臺 建設 8 配置指南-(文件共享應用) ........................................................................................

Linux學習第一步虛擬機的和鏡像的安裝

image 下載文件 型號 啟動 計算機 服務 .cn img blog 一、安裝虛擬機(本文以vmware workstation 12為例)   1.在網上所有虛擬機並下載。   2.找到下載文件安裝好   3.一直下一步   4.接下來的就是選擇安裝的目錄了,當

Linux下MySQL5.7.18二進制包安裝無默認配置my_default.cnf

一點 utf8 user 二進制 width which 密碼 用戶 location 本文出處:http://www.cnblogs.com/wy123/p/6815049.html 最新在學習MySQL,純新手,對Linux了解的也不多,因為是下載

js 解決由於&#65279bom格式產生的空白行

空白行 pan original inner itl nal 文件 head type 把以下代碼放到HTML頁面的head標簽裏就行了: <script>  var a=document.body.innerHTML;  document.body.inn

JMeter接口測試——參數化中讀取參數

cycle com 步驟 變量名 recycle con 線程 use 分隔符 從文件中讀取,三個步驟 1、讀取文件 2、取文件內容裏面的參數,給它一個名字 3、使用值 從文件讀取的話,需要在線程組裏面添加一個CSV Data Set Config,它就是做前面兩步的操作的

Linux基礎入門--find查找

linux基礎find文件查找:在文件系統上查找符合條件的文件,條件是自己給出Linux系統上實現工具:locate,findlocate: 依賴於實現構建好的索引庫,系統自動實現,一旦文件發生變化需要一定的周期時間更新。也可以手動更新數據。在索引構建過程中需要遍歷整個文件系統,極消耗資源。 工作特點:

批量讀為一個String一個夾下的大量xml

net family lin port title enc window blank bst String folder = "/nasapp/datamerger/xmls/ " ; File file = new File(folder);

Spring Batch 簡單應用CSV操作(二)

分享 resultset hunk tid XML component files lin 實現 本文將通過一個完整的實例,與大家一起討論運用Spring Batch對CSV文件的讀寫操作。此實例的流程是:讀取一個含有四個字段的CSV文件(ID,Name,Age,Score

python-基礎入門-3操作

col 文件打開 hello cnblogs you write line div 打印 打開文件用open()函數 open(filename)默認為讀取模式 等價於open(filename,‘r‘) 1 txt=open(filename) 2 print txt.r

在AndroidManifest清單中註冊activity活動及配置主活動、更改App圖標、App名稱、修改隱藏標題欄

雙擊 建議 nba cat ima manager ram spa src 打開app/src/main/AndroidManifest。 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xm