Flink最佳實踐

2021-10-23 20:54:38 字數 1688 閱讀 5145

幾乎所有的flink應用程式(批處理和流式處理)都依賴於外部配置引數。它們用於指定輸入和輸出源(如路徑或位址),系統引數(並行度,執行時配置)和特定於應用程式的引數(通常在使用者功能內使用)。

flink提供了乙個簡單的實用程式,稱為parametertool提供解決這些問題的一些基本工具。請注意,使用parametertool不是必須的。其他框架(例如commons cli和 argparse4j)也可以與flink一起使用。

將配置值放入parametertool

所述parametertool用於讀取所述配置提供一組預定義的靜態方法。該工具在內部期望使用map,因此將其與自己的配置樣式整合起來非常容易。

從配置檔案中載入引數

//url

string propertiesfilepath =

"/home/sam/flink/myjob.properties"

;parametertool parameter = parametertool.

frompropertiesfile

(propertiesfilepath)

;//file

file propertiesfile =

newfile

(propertiesfilepath)

;parametertool parameter = parametertool.

frompropertiesfile

(propertiesfile)

;//fileinputstream

inputstream propertiesfileinputstream =

newfileinputstream

(file)

;parametertool parameter = parametertool.

frompropertiesfile

(propertiesfileinputstream)

;

從命令列載入引數

這樣可以–input hdfs:///mydata --elements 42從命令列獲取引數。

public

static

void

main

(string[

] args)

注意:從flink 0.10開始適用

apache flink使用slf4j作為**中的日誌記錄抽象。建議使用者在其使用者功能中也使用sfl4j。

sfl4j是乙個編譯時日誌記錄介面,可以在執行時使用不同的日誌記錄實現,例如log4j或logback。

要在**中獲取記錄器例項,請使用以下**:

import org.slf4j.logger;

import org.slf4j.logge***ctory;

public

class

myclass

implements

mapfunction

{private

static

final logger log = logge***ctory.

getlogger

(myclass.

class

);

最佳實踐 Flutter 最佳實踐

最佳實踐是乙個領域可以接受的專業標準,對於任何程式語言來說,提高 質量 可讀性 可維護性和健壯性都非常重要。讓我們探索一些設計和開發flutter應用程式的最佳實踐。class enum typedef和extension應採用駝峰命名uppercamelcase規則。class mainscree...

Flink 實踐 側輸出

什麼是側輸出 在flink處理資料流時,我們經常會遇到這樣的情況 在處理乙個資料來源時,往往需要將該源中的不同型別的資料做分割處理,如果使用filter運算元對資料來源進行篩選分割的話,勢必會造成資料流的多次複製,造成不必要的效能浪費 flink中的側輸出就是將資料流進行分割,而不對流進行複製的一種...

JUnit最佳實踐

junit最佳實踐 cherami 轉貼 參與分 20053,專家分 4960 發表 2003 9 16 下午7 57 版本 1.0 閱讀 3899次 martin fowler說過 當你試圖列印輸出一些資訊或除錯乙個表示式時,寫一些測試 來替代那些傳統的方法。一開始,你會發現你總是要建立一些新的f...