1. 程式人生 > >[Flink]Flink1.3 Batch指南一 本地執行

[Flink]Flink1.3 Batch指南一 本地執行

Flink可以在單臺機器上執行,甚至可以在單個Java虛擬機器中執行。 這執行機制可以方便使用者在本地測試和除錯Flink程式。本節概述了Flink的本地執行機制。

本地環境和執行器(executors)允許你可以在本地Java虛擬機器上執行Flink程式,或者是在正在執行程式的Java虛擬機器上(with within any JVM as part of existing programs)。對於大部分示例程式而言,你只需簡單的地點選你IDE上的執行(Run)按鈕就可以執行。

Flink支援兩種不同的本地執行機制: (1) LocalExecutionEnvironment啟動完整的Flink執行環境,包括一個JobManager

和一個TaskManager。這些包含了記憶體管理以及在叢集模式下執行時所執行的所有內部演算法。 (2) CollectionEnvironment在Java集合上執行Flink程式(executing the Flink program on Java collections)。這種模式不會啟動完整的Flink執行環境,因此執行開銷比較低以及輕量級。例如,DataSet的map轉換操作將map()函式應用於Java列表中的所有元素上。

1. 除錯

如果你在本地執行Flink程式,還可以像任何其他Java程式一樣來除錯程式。你可以使用System.out.println()來列印一些內部變數,也可以使用偵錯程式。可以在map(),reduce()以及所有其他方法中設定斷點。請參閱Java API文件中的

除錯部分,來了解如何使用Java API來測試和本地除錯程式。

2. Maven

如果你在Maven專案中開發程式,則必須使用下面依賴關係新增flink-clients模組:

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.10</artifactId>
  <version>1.3.2</version>
</dependency>

3. 本地執行環境

LocalEnvironment是本地執行Flink程式的控制代碼,可以使用它在本地的JVM,獨立執行或嵌入其他程式裡執行。

本地執行執行環境通過ExecutionEnvironment.createLocalEnvironment()方法例項化。預設情況下,Flink將盡可能使用跟你機器CPU核數一樣多的本地執行緒來執行程式。你可以指定程式你想要的並行度。本地執行環境可以通過enableLogging()/disableLogging()來配置日誌的輸出。

在大多數情況下,ExecutionEnvironment.getExecutionEnvironment()是一種更好的選擇。當程式在本地啟動時(不使用命令列介面),該方法返回LocalEnvironment,當程式是通過命令列介面提交時,則該方法會返回為在叢集中執行提前配置好的執行環境(pre-configured environment for cluster execution)。

public static void main(String[] args) throws Exception {
    ExecutionEnvironment env = ExecutionEnvironment.createLocalEnvironment();

    DataSet<String> data = env.readTextFile("file:///path/to/file");

    data.filter(new FilterFunction<String>() {
            public boolean filter(String value) {
                return value.startsWith("http://");
            }
        })
        .writeAsText("file:///path/to/result");

    JobExecutionResult res = env.execute();
}

在程式執行結束時會返回JobExecutionResult物件,這個類中包含了程式的執行狀態(runtime)和累加器(accumulator)結果。

LocalEnvironment也可以向Flink傳入使用者自定義配置。

Configuration conf = new Configuration();
conf.setFloat(ConfigConstants.TASK_MANAGER_MEMORY_FRACTION_KEY, 0.5f);
final ExecutionEnvironment env = ExecutionEnvironment.createLocalEnvironment(conf);

備註:

本地執行環境不啟動任何Web前端來監控執行。

4. 集合執行環境

使用CollectionEnvironment在Java集合上執行,對於執行Flink程式是一種開銷比較低的方法。在這種模式中通常用於自動化測試、除錯、程式碼重用等場景。

使用者可以使用用於批處理的演算法,或者是用於更具互動性的演算法(Users can use algorithms implemented for batch processing also for cases that are more interactive)。Flink程式通過稍微修改就可用於處理請求的Java應用伺服器。

下面是集合環境的例子:

public static void main(String[] args) throws Exception {
    // initialize a new Collection-based execution environment
    final ExecutionEnvironment env = new CollectionEnvironment();

    DataSet<User> users = env.fromCollection( /* get elements from a Java Collection */);

    /* Data Set transformations ... */

    // retrieve the resulting Tuple2 elements into a ArrayList.
    Collection<...> result = new ArrayList<...>();
    resultDataSet.output(new LocalCollectionOutputFormat<...>(result));

    // kick off execution.
    env.execute();

    // Do some work with the resulting ArrayList (=Collection).
    for(... t : result) {
        System.err.println("Result = "+t);
    }
}

flink-examples-batch模組包含一個完整的示例,名稱為CollectionExecutionExample

備註:

基於集合的Flink程式僅適用於小資料量,這樣可以完全放進JVM堆中。在集合上的執行不是多執行緒的,只使用一個執行緒。

備註:

Flink版本為1.3

相關推薦

[Flink]Flink1.3 Batch指南 本地執行

Flink可以在單臺機器上執行,甚至可以在單個Java虛擬機器中執行。 這執行機制可以方便使用者在本地測試和除錯Flink程式。本節概述了Flink的本地執行機制。本地環境和執行器(executors)允許你可以在本地Java虛擬機器上執行Flink程式,或者是在正在執行程式

[Flink]Flink1.3 Stream指南三 視窗分配器

Windows(視窗)是處理無限資料流的核心。Windows將流分解成有限大小的"桶",在上面我們可以進行計算。本文件重點介紹如何在Flink中處理視窗,以及如何從它提供的功能中獲得最大的收益。視窗Flink程式的一般結構如下。第一個片段指的是指定key的資料流,而第二個到未

鎖和多執行緒:執行緒建立3種方式()

執行緒  鎖Synchronized  搞明白 執行緒 鎖和多執行緒系列 1.執行緒建立 執行緒建立常見的三種方式: 繼承Thread類 實現Runnable介面

windows下9款鍵快速搭建PHP本地執行環境的好工具(含php7.0環境)

推薦幾款一鍵快速搭建PHP本地執行環境的好工具(含php7.0及apache,nigix,mysql) 首推phpstudy2016和wampServer3.0.6     理由支援php7.0 目前熱門php框架如:laravel5.2要求php版本5.6以上,thinkphp及yi

C++11 併發指南(C++11 多執行緒初探)

引言 C++11 自2011年釋出以來已經快兩年了,之前一直沒怎麼關注,直到最近幾個月才看了一些 C++11 的新特性,今後幾篇部落格我都會寫一些關於 C++11 的特性,算是記錄一下自己學到的東西吧,和大家共勉。 相信 Linux 程式設計師都用過 Pthread, 但有了 C++11 的 std::t

IDEA從0搭建SSM專案【圖文】()——本地執行Hello World

記得初學SSM時,跟著網上的教程走,一步一坑,為了讓更多的初學者體驗一次搭建好SSM的快感,本人利用工作之餘撰寫此篇教程。 一,環境準備 1.IDEA工具 2.maven ① 配置到環境變數 ② 將maven新增到IDEA 圖中Local reposit

Solr學習筆記 ---Solr執行環境搭建(tomcat7 + solr 3.5 +ubuntu 10.04)

一、軟體下載 二、軟體安裝   1、安裝Tomcat7, 解壓apache-tomcat-7.0.26.tar.gz,增加環境變數      export $CATALINA_HOME=apache-tomcat-7.0.26    export $CATALINA_B

已解決:專案本地執行一點問題沒有,上伺服器就jar包衝突

<dependency>             <groupId>org.springframework.boot</groupId>             &l

本地執行Kubernetes的3種主流方式

> 作者簡介 > Chris Tozzi,曾擔任記者和Linux管理員。對開源技術、敏捷基礎架構以及網路問題興趣濃厚。目前擔任高階內容編輯,並且是Fixate IO的DevOps分析師。 > 原文連結: > > https://searchitoperations.tec

gulp指南()

還得 技術分享 archive n) pre name task registry ini npm介紹 1、npm(node package manager)是nodejs的包管理器,用於node插件管理(包括安裝、卸載、管理依賴等); 2、使用npm安裝插件: npm

Apache Flink 1.3.0正式發布及其新功能介紹

space str either update sse ant 新功能 sid ask 下面文檔是今天早上翻譯的,因為要上班,時間比較倉促,有些部分沒有翻譯,請見諒。 2017年06月01日兒童節 Apache Flink 社區正式發布了 1.3.0 版本。此版本經歷了四個

CentOS 7.3 安裝指南

des 根據 http 修復 dir 繼續 支持 監控工具 報告 摘要: 基於 Red Hat 企業版的源代碼的最新版本的 CentOS 7 在今年的 12月發布了 CentOS Linux 7 (1611),包含了許多 bug 修復、新的包更新,比如 Samba、Squi

Web公路,新手上路!NO.3 [ 亂做通的基本視頻網頁]

分布 big footer 規則 新手上路 n) radius lan black 這個頁面主要是三部分,導航,內容,頁尾。 一、導航;   一般有三種方式,   垂直導航欄, 橫向導航欄,復合導航欄。   這裏主要講橫向導航欄, 這種有兩種基本方式: display:in

(官網)虛幻3--入門指南: 遊戲性元素

要點 生命周期 頁面 bsp 定時 ade 定義 根據 基礎 入門指南: 遊戲性元素 入門指南: 遊戲性元素 概述 遊戲類型概述 玩家概述 HUD和UI概述 概述 有幾個遊戲性元素實際上是所有使用虛幻引擎3或虛幻開發工具包創建的項目所共有的。自定義

jenkins 每個月1號到7號 執行

minute 新源 驗證 配置 http 有變 blog sof ica 在線Crontab表達式執行時間驗證 / crontab執行時間計算 - aTool在線工具驗證 http://www.atool.org/crontab.php 1.Build

[Essay] Apache Flink:十分可靠,分不差

pac 資源 模型設計 end AD 抽象 pan 市場 mage Apache Flink:十分可靠,一分不差 Apache Flink 的提出背景 我們先從較高的抽象層次上總結當前數據處理方面主要遇到的數據集類型(types of datasets)以及在處理數據時可供

HTML 5與CSS 3權威指南(第2版·上冊) 中文pdf掃描版?

第8章 html5 信息 bubuko jpg 拖放 一個 本地存儲 其他 HTML5與CSS3權威指南(第2版·上冊)已經成為HTML 5與CSS 3圖書領域的一個標桿,被讀者譽為“系統學習HTML 5與CSS 3技術的最佳指導參考書之一”和“Web前端工程師案頭必備圖書

程序單次只允許執行的SAP 鎖

tin bsp lur ffffff fun sco gty for BE START-OF-SELECTION. CALL FUNCTION ‘ENQUEUE_ESRDIRE‘ EXPORTING name = sy-repi

Quick start Solr 之安裝指南()

align yum 文件夾 CP 基礎 成功 引擎 全文搜索 回車 Solr簡介 1. 企業站內搜索技術選型在一些大型門戶網站、電子商務網站等都需要站內搜索功能,使用傳統的數據庫查詢方式實現搜索無法滿足一些高級的搜索需求,比如:搜索速度要快、搜索結果按相關度排序、搜索內容

Anko使用指南()之Intent

詳細 enter 發送 ron clas ali number jetbrains url 使用Anko Intent幫助器可以添加如下依賴 dependencies { compile "org.jetbrains.anko:anko-commons:$anko