Apache Flink - 基本API概念

來源:互聯網
上載者:User

標籤:定義   元素   tee   命令列   stream   並且   out   lte   機器   

  • Flink程式是實現分布式集合轉換的常規程式。集合最初是從源建立的。通過接收器(slink)返回結果,接收器可以將資料寫到某個檔案或stdout。Flink可以在各種環境(context)中運行,本地JVM或叢集。

1.資料集和資料流

  • Flink用特殊的類DataSet and DataStream來表示程式中的資料。可以認為他們是可以包含重複資料的不可變資料集合。在DataSet中資料是有限的,而在DataStream中資料是無限的。
  • 這些集合不同於java裡的集合,他們是不可變的,一旦被創造就不能改動,也不能簡單的抽查裡面的元素。
  • 最初的集合是通過在Flink程式裡添加一個源被創造的,新的集合是使用API方法(如mapfilter)通過轉換得到的。

2.剖析一個Flink程式

  • 每個程式包含相同的基本部分:
  1. 獲得一個執行環境(execution environment).
  2. 載入/建立初始資料。
  3. 指定轉換這些資料。
  4. 指定放置計算結果的位置。
  5. 觸發程式執行。
  • StreamExecutionEnvironment是所有Flink程式的基礎。可以通過以下靜態方法獲得:
    getExecutionEnvironment()createLocalEnvironment()createRemoteEnvironment(String host, int port, String... jarFiles)

    通常只需要使用getExecutionEnvironment()方法,因為這將根據環境做出正確的事:如果你執行你的程式在IDE上或著作為一個普通Java程式,它將建立一個本地環境,將在本地機器上執行程式。如果您從您的程式建立了一個JAR檔案,並通過命令列調用它,Flink叢集管理者將執行你的main方法並且getExecutionEnvironment()將返回一個在一個叢集上執行程式的執行環境。

  • 用於指定資料來源,執行環境有幾個方法來從檔案讀取:你可以逐行閱讀,像CSV檔案,或者使用完全自訂資料輸入格式。要讀取一個文字檔的順序,您可以使用:
    final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();DataStream<String> text = env.readTextFile("file:///path/to/file");

     

Apache Flink - 基本API概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.