Flink是一個(gè)基于流計(jì)算的分布式引擎,以前的名字叫stratosphere,從2010年開始在德國一所大學(xué)里發(fā)起,也是有好幾年的 歷史 了,2014年來借鑒了社區(qū)其它一些項(xiàng)目的理念,快速發(fā)展并且進(jìn)入了Apache頂級(jí)孵化器,后來更名為Flink。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都做網(wǎng)站、巴彥網(wǎng)絡(luò)推廣、微信小程序開發(fā)、巴彥網(wǎng)絡(luò)營銷、巴彥企業(yè)策劃、巴彥品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供巴彥建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
Flink在德語中是快速和靈敏的意思 ,用來體現(xiàn)流式數(shù)據(jù)處理速度快和靈活性強(qiáng)等特點(diǎn)。
Flink提供了同時(shí)支持高吞吐、低延遲和exactly-once 語義的實(shí)時(shí)計(jì)算能力,另外Flink 還提供了基于流式計(jì)算引擎處理批量數(shù)據(jù)的計(jì)算能力,真正意義上實(shí)現(xiàn)了流批統(tǒng)一。
Flink 獨(dú)立于Apache Hadoop,且能在沒有任何 Hadoop 依賴的情況下運(yùn)行。
但是,F(xiàn)link 可以很好的集成很多 Hadoop 組件,例如 HDFS、YARN 或 HBase。 當(dāng)與這些組件一起運(yùn)行時(shí),F(xiàn)link 可以從 HDFS 讀取數(shù)據(jù),或?qū)懭虢Y(jié)果和檢查點(diǎn)(checkpoint)/快照(snapshot)數(shù)據(jù)到 HDFS 。 Flink 還可以通過 YARN 輕松部署,并與 YARN 和 HDFS Kerberos 安全模塊集成。
Flink具有先進(jìn)的架構(gòu)理念、諸多的優(yōu)秀特性,以及完善的編程接口。
Flink的具體優(yōu)勢有如下幾點(diǎn):
(1)同時(shí)支持高吞吐、低延遲、高性能;
(2)支持事件時(shí)間(Event Time)概念;
事件時(shí)間的語義使流計(jì)算的結(jié)果更加精確,尤其在事件到達(dá)無序或者延遲的情況下,保持了事件原本產(chǎn)生時(shí)的時(shí)序性,盡可能避免網(wǎng)絡(luò)傳輸或硬件系統(tǒng)的影響。
(3)支持有狀態(tài)計(jì)算;
所謂狀態(tài)就是在流計(jì)算過程中,將算子的中間結(jié)果數(shù)據(jù)保存在內(nèi)存或者文件系統(tǒng)中,等下一個(gè)事件進(jìn)入算子后,可以從之前的狀態(tài)中獲取中間結(jié)果,計(jì)算當(dāng)前的結(jié)果,從而無需每次都基于全部的原始數(shù)據(jù)來統(tǒng)計(jì)結(jié)果。
(4)支持高度靈活的窗口(Window)操作;
(5)基于輕量級(jí)分布式快照(Snapshot)實(shí)現(xiàn)的容錯(cuò);
(6)基于JVM實(shí)現(xiàn)獨(dú)立的內(nèi)存管理;
(7)Save Points(保存點(diǎn));
保存點(diǎn)是手動(dòng)觸發(fā)的,觸發(fā)時(shí)會(huì)將它寫入狀態(tài)后端(State Backends)。Savepoints的實(shí)現(xiàn)也是依賴Checkpoint的機(jī)制。Flink 程序在執(zhí)行中會(huì)周期性的在worker 節(jié)點(diǎn)上進(jìn)行快照并生成Checkpoint。因?yàn)槿蝿?wù)恢復(fù)的時(shí)候只需要最后一個(gè)完成的Checkpoint的,所以舊有的Checkpoint會(huì)在新的Checkpoint完成時(shí)被丟棄。Savepoints和周期性的Checkpoint非常的類似,只是有兩個(gè)重要的不同。一個(gè)是由用戶觸發(fā),而且不會(huì)隨著新的Checkpoint生成而被丟棄。
在Flink整個(gè)軟件架構(gòu)體系中,統(tǒng)一遵循了分層的架構(gòu)設(shè)計(jì)理念,在降低系統(tǒng)耦合度的同時(shí),為上層用戶構(gòu)建Flink應(yīng)用提供了豐富且友好的接口。
整個(gè)Flink的架構(gòu)體系可以分為三層:
Deployment層: 該層主要涉及了Flink的部署模式,F(xiàn)link支持多種部署模式:本地、集群(Standalone/YARN),云(GCE/EC2),Kubernetes等。
Runtime層:Runtime層提供了支持Flink計(jì)算的全部核心實(shí)現(xiàn),比如:支持分布式Stream處理、JobGraph到ExecutionGraph的映射、調(diào)度等等,為上層API層提供基礎(chǔ)服務(wù)。
API層: 主要實(shí)現(xiàn)了面向無界Stream的流處理和面向Batch的批處理API,其中面向流處理對(duì)應(yīng)DataStream API,面向批處理對(duì)應(yīng)DataSet API。
Libraries層:該層也可以稱為Flink應(yīng)用框架層,根據(jù)API層的劃分,在API層之上構(gòu)建的滿足特定應(yīng)用的計(jì)算框架,也分別對(duì)應(yīng)于面向流處理和面向批處理兩類。
核心概念:Job Managers,Task Managers,Clients
Flink也是典型的master-slave分布式架構(gòu)。Flink的運(yùn)行時(shí),由兩種類型的進(jìn)程組成:
Client: Client不是運(yùn)行時(shí)和程序執(zhí)行的一部分,它是用來準(zhǔn)備和提交數(shù)據(jù)流到JobManagers。之后,可以斷開連接或者保持連接以獲取任務(wù)的狀態(tài)信息。
當(dāng) Flink 集群啟動(dòng)后,首先會(huì)啟動(dòng)一個(gè) JobManger 和一個(gè)或多個(gè)的 TaskManager。由 Client 提交任務(wù)給 JobManager, JobManager 再調(diào)度任務(wù)到各個(gè) TaskManager 去執(zhí)行,然后 TaskManager 將心跳和統(tǒng)計(jì)信息匯報(bào)給 JobManager。 TaskManager 之間以流的形式進(jìn)行數(shù)據(jù)的傳輸。上述三者均為獨(dú)立的 JVM 進(jìn)程。
每個(gè)Worker(Task Manager)是一個(gè)JVM進(jìn)程,通常會(huì)在單獨(dú)的線程里執(zhí)行一個(gè)或者多個(gè)子任務(wù)。為了控制一個(gè)Worker能夠接受多少個(gè)任務(wù),會(huì)在Worker上抽象多個(gè)Task Slot (至少一個(gè))。
只有一個(gè)slot的TaskManager意味著每個(gè)任務(wù)組運(yùn)行在一個(gè)單獨(dú)JVM中。 在擁有多個(gè)slot的TaskManager上,subtask共用JVM,可以共用TCP連接和心跳消息,同時(shí)可以共用一些數(shù)據(jù)集和數(shù)據(jù)結(jié)構(gòu),從而減小任務(wù)的開銷。
Flink的任務(wù)運(yùn)行其實(shí)是多線程的方式,這和MapReduce多JVM進(jìn)程的方式有很大的區(qū)別,F(xiàn)link能夠極大提高CPU使用效率,在多個(gè)任務(wù)之間通過TaskSlot方式共享系統(tǒng)資源,每個(gè)TaskManager中通過管理多個(gè)TaskSlot資源池對(duì)資源進(jìn)行有效管理。
方法:
1:Redhat系統(tǒng)或者Fedora或者CentOs的Linux發(fā)行版,那么在Linux終端輸入命令回車:
su - root
這樣就可以切換到root權(quán)限了
2:Ubuntu系統(tǒng),在Linux終端輸入命令回車:
sudo su - root
然后這樣也可以切換到root權(quán)限了.
城市現(xiàn)狀圖、市域城鎮(zhèn)體系規(guī)劃圖、道路交通規(guī)劃圖、各項(xiàng)專業(yè)規(guī)劃圖及近期建設(shè)規(guī)劃圖
LiteIDE是一款專門為Go語言開發(fā)的跨平臺(tái)輕量級(jí)集成開發(fā)環(huán)境(IDE),由QT編寫。
LiteIDE主要特點(diǎn): 支持主流操作系統(tǒng)
Windows
Linux
MacOS X Go編譯環(huán)境管理和切換
管理和切換多個(gè)Go編譯環(huán)境
支持Go語言交叉編譯 與Go標(biāo)準(zhǔn)一致的項(xiàng)目管理方式
基于GOPATH的包瀏覽器
基于GOPATH的編譯系統(tǒng)
基于GOPATH的Api文檔檢索 Go語言的編輯支持
類瀏覽器和大綱顯示
Gocode(代碼自動(dòng)完成工具)的完美支持
Go語言文檔查看和Api快速檢索
代碼表達(dá)式信息顯示F1
源代碼定義跳轉(zhuǎn)支持F2
Gdb斷點(diǎn)和調(diào)試支持
gofmt自動(dòng)格式化支持 其他特征
支持多國語言界面顯示
完全插件體系結(jié)構(gòu)
支持編輯器配色方案
基于Kate的語法顯示支持
基于全文的單詞自動(dòng)完成
支持鍵盤快捷鍵綁定方案
Markdown文檔編輯支持
實(shí)時(shí)預(yù)覽和同步顯示
自定義CSS顯示
可導(dǎo)出HTML和PDF文檔
批量轉(zhuǎn)換/合并為HTML/PDF文檔 Sublime Text 2(以下簡稱Sublime)+ GoSublime + gocode + MarGo的組合。
其優(yōu)點(diǎn)有: 自動(dòng)化提示代碼。 保存的時(shí)候自動(dòng)格式化代碼,讓您編寫的代碼更加美觀,符合Go的標(biāo)準(zhǔn)。 支持項(xiàng)目管理 支持語法高亮 熟悉Java的讀者應(yīng)該對(duì)于idea不陌生,idea是通過一個(gè)插件來支持go語言的高亮語法,代碼提示和重構(gòu)實(shí)現(xiàn)。