002 基于 Standalone 模式部署 Flink 服務

這將是一套完整詳細且持續(xù)更新的、長期維護的 原創(chuàng) Flink系列教程、文檔,其中會包含各種商用實例詳解、Flink源碼講解、機制剖析、周邊組件講解等,旨在幫助開發(fā)者快速融入Flink開發(fā),或作為工具文檔參閱。也希望更多的開發(fā)者可以參與到大數據相關的技術討論中來,共同商討疑難雜癥,豐富社區(qū)?!M際

本文標題: 基于 Standalone 模式部署 Flink 服務

文章作者: 盡際

發(fā)布時間: 2019年07月25日 - 23:38:30

最后更新: 2019年07月25日 - 23:38:30

原始鏈接:

許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國際 轉載請保留原文鏈接及作者。


二、基于 Standalone 模式部署 Flink 服務

通過上一篇文章,我們已經下載了Flink 1.8.1版本的安裝包到本地磁盤:

  • flink-1.8.1-bin-scala_2.11.tgz
  • flink-shaded-hadoop-2-uber-2.7.5-7.0.jar

然后將其上傳至虛擬機中。

接下來,開始部署 Flink 服務。在此過程中,會穿插Flink相關概念的講解。

2.1 基于 Standalone 模式部署 Flink 服務

本教程會基于兩種模式(Standalone 和 YARN)部署 Flink 服務。

本章首先使用 Standalone 模式部署 Flink 服務。Standalone 是 Flink 自帶的服務管理模式,不需要依賴于其他分布式組件,也不需要提前安裝其他第三方服務,從而達到開箱即用的效果。

2.1.1 Flink 服務介紹

在部署 Flink 服務之前,我們需要提前了解如下兩個基本概念:

  • 客戶端(Client)

    向 Flink 集群提交 Job 的客戶端。并可以持續(xù)與 Flink 集群進行 RPC 通信,從而持續(xù)獲取 Job 的運行狀態(tài)。

  • 主服務(JobManager)

    Flink 主服務 的名稱為 JobManager。它是一個 Java 進程。

    該服務所在的節(jié)點(宿主機)稱之為 Flink 主節(jié)點(Master)。

    該服務主要用來接收用戶(Client 端)提交的Flink Job(數據分析任務),并將 Job 調度分配到從服務上運行。

  • 從服務(TaskManager)

    Flink 從服務 的名稱為 TaskManager,它也是一個Java進程。

    該服務所在的節(jié)點(宿主機)稱之為 Flink 從節(jié)點(Woker)。

    該服務主要用來運行 JobManager 派發(fā)過來的 Flink Job。

在部署 Flink 服務階段,暫且不需要了解太多關于任務運行的概念。后續(xù)再慢慢展開介紹。此處將展示 Flink 服務的官方架構如圖2-1 所示,讀者暫且粗略了解即可。

  • 圖2-1 Flink 服務架構圖
    Flink 服務架構圖.png

2.1.2 基于 Standalone 模式部署服務

了解了 Flink 服務的基本概念后,開始根據如下步驟部署服務吧。

在本例中,將在 3 臺虛擬機中部署的 Flink 服務如表2-1 所示。

  • 表2-1 Standalone 模式下部署的 Flink 服務的分布

    linux01 linux02 linux03
    JobManager - -
    - TaskManager TaskManager
  1. 解壓 Flink 壓縮包

    將Flink壓縮包上傳至第一臺虛擬機的 ~/softwares/installations 目錄后,使用如下命令進行解壓:

    $ tar -zxf tar -zxf ~/softwares/installations/flink-1.8.1-bin-scala_2.11.tgz -C ~/modules/
    
  2. 修改配置文件

    • 修改flink-conf.yaml文件

      修改 conf 目錄下的 flink-conf.yaml 配置文件,涉及到修改的內容如下所示:

      jobmanager.rpc.address: linux01
      

      該項配置是指將筆者所使用的第一臺虛擬機作為 Master 節(jié)點,即,第一臺機器會開啟 Flink 的JobManager服務。

      提示:如果Master和Worker機器上沒有配置JAVA_HOME環(huán)境變量,需要在 flink-conf.yaml 中通過 env.java.home 變量指定JAVA的安裝目錄。

  • 修改slaves文件

    修改 conf 目錄下的 slaves 配置文件,修改后的內容如下所示:

    linux02
    linux03
    

    該文件中的每一行是一個 IP主機名,代表稍后會在這些節(jié)點上開啟 TaskManager 服務。

  1. 合理配置依賴包

    • 添加 Flink-Table 依賴包

      在生產環(huán)境中,開發(fā)者開發(fā)的 Flink 應用程序可能會伴隨 Table API 的操作(支持以 SQL 的方式進行數據分析),因此,開發(fā)者需要將 Flink 安裝目錄下的 opt 中的 flink-table_2.11-1.8.1.jar 包拷貝到 lib 目錄中。操作命令如下所示:

      $ pwd
      /home/admin/modules/flink-1.8.1
      $ cp -a opt/flink-table_2.11-1.8.1.jar lib/
      
    • 添加 Hadoop 依賴包

      將之前下載好的 flink-shaded-hadoop-2-uber-2.7.5-7.0.jar 包移動至 Flink 安裝目錄的 lib 目錄中,使 Flink 能夠支持對 Hadoop 的操作。操作命令如下所示:

      $ pwd
      /home/admin/modules/flink-1.8.1
      $ cp -a ~/softwares/installations/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar ./lib/
      

    以上操作完成后,即可看到 lib 目錄下的內容如下所示:

    $ ll lib/
    flink-dist_2.11-1.8.1.jar
    flink-shaded-hadoop-2-uber-2.7.5-7.0.jar
    flink-table_2.11-1.8.1.jar
    log4j-1.2.17.jar
    slf4j-log4j12-1.7.15.jar
    
  2. 分發(fā) Flink 安裝目錄

    以上步驟配置完成后,即可分發(fā)該安裝包到其他節(jié)點,操作命令如下:

    $ pwd
    /home/admin/modules
    scp -r flink-1.8.1/ admin@linux02:/home/admin/modules/
    scp -r flink-1.8.1/ admin@linux03:/home/admin/modules/
    

    提示:在進行上述操作時,最好配置完成集群各個節(jié)點之間的 SSH 無秘鑰訪問。其中 scp -r 表示遠程分發(fā)目錄到后面的節(jié)點對應目錄中。

    分發(fā)完成后,即可在其他節(jié)點對應目錄中查看到 Flink 安裝包。

  3. 啟動 Flink 服務

    接下來,即可啟動 Flink 集群,操作命令如下:

    $ pwd
    /home/admin/modules/flink-1.8.1
    $ bin/start-cluster.sh
    Starting cluster.
    Starting standalonesession daemon on host linux01.
    Starting taskexecutor daemon on host linux02.
    Starting taskexecutor daemon on host linux03.
    

    稍等片刻,我們即可通過 jps 分別查看到 3 臺節(jié)點的進程如下:

    ----------------admin@linux01-----------------
    4132 Jps
    4038 StandaloneSessionClusterEntrypoint
    ----------------admin@linux02-----------------
    3057 Jps
    2951 TaskManagerRunner
    ----------------admin@linux03-----------------
    2977 TaskManagerRunner
    3032 Jps
    

    現在,可以通過瀏覽器,訪問 Flink Master 節(jié)點的地址進入后臺管理頁面,查看啟動的集群服務。

    后臺頁面默認地址如下:

    http://linux01:8081
    

    提示:如果在 Windows 中通過瀏覽器訪問虛擬機中的頁面服務,可以通過虛擬機的 IP 地址訪問如果想要通過虛擬機的主機名訪問,則需要將虛擬機的 IP 地址與虛擬機的主機名配置到 Windows 中的 C:/windows/system32/driver/etc/hosts文件中。

    查看到的頁面效果如圖2-2 所示。

  • 圖2-2 Flink 后臺管理頁面
    Flink 后臺管理頁面.png

2.2 基于 Standalone 模式提交 Flink Job

完成上述部署后,可通過運行官方提供的一個案例來檢測集群是否能夠正常工作。運行官方案例的命令如下:

$ pwd
/home/admin/modules/flink-1.8.1
$  bin/flink run ./examples/batch/WordCount.jar

正常情況下,提交上述命令后,前往 Flink 后臺管理頁面,即可看到如圖2-3 所示內容。

  • 圖2-3 提交的 Flink Job
    提交Flink Job.png

在上述提交 Job 的命令中,是最簡化的形式,開發(fā)者在提交任務時,還可以通過其他參數配置 Job 運行時的資源、狀態(tài)、功能等信息。我們將在后續(xù)的章節(jié)中進行說明。

2.3 本章小結

本章基于 Standalone 模式部署了 Flink 服務,在此過程中,忽略了配置文件中的若干可配置項,并簡述了相關概念。目的在于先將集群環(huán)境梳理清楚,完成集群搭建,循序漸進捋清前置知識。下一章,我們將基于 YARN 模式部署 Flink 服務。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容