安裝:下載並啟動
Flink可以在Linux、Mac OS X以及Windows上運行。為了能夠運行Flink,唯一的要求是必須安裝Java 7.x或者更高版本。對於Windows用戶來說,請參考 Flink on Windows 文檔,里面介紹了如何在Window本地運行Flink。
下載
從下載頁面(http://flink.apache.org/downloads.html
)下載所需的二進制包。你可以選擇任何與 Hadoop/Scala 結合的版本。比如 Flink for Hadoop 2。
啟動一個local模式的Flink集群
啟動一個local模式的Flink集群非常地簡單,我們可以按照以下的步驟來操作:
1、進入到下載的目錄;
2、解壓下載的文件;
3、啟動Flink。
操作命令如下:
$
cd
~
/Downloads
# Go to download directory
$
tar
xzf flink-*.tgz
# Unpack the downloaded archive
$
cd
flink-1.0.0
$ bin
/start-local
.sh
# Start Flink
|
打開https://www.iteblog.com:8081
檢查Jobmanager和其他組件是否正常運行。Web前端應該顯示了只有一個可用的 TaskManager。

運行例子
現在,我們來運行SocketTextStreamWordCount
例子,它從socket中獲取文本,然后計算每個單詞出現的次數。操作步驟如下:
1、首先,我們使用netcat來啟動本地服務器:
$ nc -l -p 9000
|
2、然后我們就可以提交Flink程序了:
$ bin
/flink
run examples
/streaming/SocketTextStreamWordCount
.jar \
--
hostname
localhost \
--port 9000
Printing result to stdout. Use --output to specify output path.
04
/05/2016
16:03:36 Job execution switched to status RUNNING.
04
/05/2016
16:03:36 Source: Socket Stream -> Flat Map(1
/1
) switched to SCHEDULED
04
/05/2016
16:03:36 Source: Socket Stream -> Flat Map(1
/1
) switched to DEPLOYING
04
/05/2016
16:03:36 Keyed Aggregation -> Sink: Unnamed(1
/1
) switched to SCHEDULED
04
/05/2016
16:03:36 Keyed Aggregation -> Sink: Unnamed(1
/1
) switched to DEPLOYING
04
/05/2016
16:03:36 Keyed Aggregation -> Sink: Unnamed(1
/1
) switched to RUNNING
04
/05/2016
16:03:36 Source: Socket Stream -> Flat Map(1
/1
) switched to RUNNING
04
/05/2016
17:00:43 Source: Socket Stream -> Flat Map(1
/1
) switched to FINISHED
04
/05/2016
17:00:43 Keyed Aggregation -> Sink: Unnamed(1
/1
) switched to FINISHED
04
/05/2016
17:00:43 Job execution switched to status FINISHED.
|
這個程序和socket進行了連接,並等待輸入。我們可以在WEB UI中檢查Job是否正常運行:

3、計數會打印到標准輸出stdout。監控JobManager的輸出文件(.out文件),並在nc中敲入一些單詞:
$ nc -l -p 9000
lorem ipsum
ipsum ipsum ipsum
bye
|
.out 文件會立即打印出單詞的計數:
$
tail
-f log
/flink-
*-jobmanager-*.out
(lorem,1)
(ipsum,1)
(ipsum,2)
(ipsum,3)
(ipsum,4)
(bye,1)
|
要停止 Flink,只需要運行:
$ bin
/stop-local
.sh
|

集群模式安裝
在集群上運行 Flink 是和在本地運行一樣簡單的。需要先配置好 SSH 免密碼登錄 和保證所有節點的目錄結構是一致的,這是保證我們的腳本能正確控制任務啟停的關鍵。然后我們就可以按照下面步驟來操作:
1、在每台節點上,復制解壓出來的 flink 目錄到同樣的路徑下。
2、選擇一個 master 節點 (JobManager) 然后在 conf/flink-conf.yaml
中設置 jobmanager.rpc.address
配置項為該節點的 IP 或者主機名。確保所有節點有有一樣的 jobmanager.rpc.address
配置。
3、將所有的 worker 節點 (TaskManager)的 IP 或者主機名(一行一個)填入 conf/slaves 文件中。
現在,你可以在 master 節點上啟動集群:bin/start-cluster.sh
。
下面的例子闡述了三個節點的集群部署(IP地址從 10.0.0.1 到 10.0.0.3,主機名分別為 master, worker1, worker2)。並且展示了配置文件,以及所有機器上一致的可訪問的安裝路徑。

訪問https://ci.apache.org/projects/flink/flink-docs-release-1.0/setup/config.html查看更多可用的配置項。為了使 Flink 更高效的運行,還需要設置一些配置項。
以下都是非常重要的配置項:
1、TaskManager 總共能使用的內存大小(taskmanager.heap.mb)
2、每一台機器上能使用的 CPU 個數(taskmanager.numberOfTaskSlots)
3、集群中的總 CPU 個數(parallelism.default)
4、臨時目錄(taskmanager.tmp.dirs)
Flink on YARN
你可以很方便地將 Flink 部署在現有的YARN集群上,操作如下:
1、下載 Flink Hadoop2 包: Flink with Hadoop 2
2、確保你的 HADOOP_HOME (或 YARN_CONF_DIR
或 HADOOP_CONF_DIR
) __環境變量__設置成你的 YARN 和 HDFS 配置。
3、運行 YARN 客戶端:./bin/yarn-session.sh
。你可以帶參數運行客戶端 -n 10 -tm 8192 表示分配 10 個 TaskManager,每個擁有 8 GB 的內存。