Docker安裝flink及避坑指南

戎"碼"一生發表於2021-09-21

導航

  • 無處不在的大資料
  • 安裝flink
    • 拉取flink映象
    • 編寫docker-compose.yml
    • 生成啟動
    • 檢視安裝效果
  • 常見坑及解決方案
    • 問題1
    • 問題2
  • 參考

  本節是《flink入門實戰》的第4篇,感謝您的閱讀,預計閱讀時長3min。

“泰山不拒細壤,故能成其高,江海不擇細流,故能就其深。”

flink作為第三代大資料處理方案,早已成為業內的共識,並且發展迅猛(即將釋出的新特性可以檢視《Flink1.14新特性搶鮮看~》),而開啟這扇大門的第一步是搭建flink的環境,以便我們後續測試和專案實踐。

無處不在的大資料

大資料早已不是什麼新鮮事物,比如在國內一線網際網路大廠早有應用。比如,我們熟知淘寶的雙十一大屏資料,頭條的個個性化推薦等應用。

但是,在很多二三線城市,中小型公司基本上沒有處理大資料的能力。

自從提出大資料之後,軟體行業產生了一些新興的崗位,如演算法工程師,大資料工程師。

大資料工程師可以從事對大量資料的採集、清洗、分析、治理、挖掘,並對這些資料加以利用、管理、維護和服務的相關技術工作。(百度百科)

大資料工程師更加偏向於演算法和抽象資料的分析和處理。傳統的軟體工程師更加偏向於業務程式碼的實現。

物以稀為貴,大資料的工程師的價位不菲,幾乎是傳統工程師2~3倍。再加上大資料的門檻,比如要學習python,要學習很多數學公式,讓很多傳統軟體工程師望而生畏。

筆者接觸大資料也是基於一個工作上的契機。因為公司業務的需要,公司高層希望建立APP使用者畫像,並能有針對性的為顧客做一些智慧化商品或者內容推薦。

因為部門研發人員基本上都是從事業務程式碼編寫,對大資料這一套並沒有實踐經驗。通過,一番學習打卡,再加上和阿里,亞馬遜等技術大神多次交流,集合整個團隊智慧,總算搭建了一套可以跑起來的推薦系統。

在這個過程中,其實涉及的語言和中介軟體很多,比如Java,python,embedding(特徵抽取),tensorflow框架,離線和線上計算等。資料處理引擎涉及到Spark,flink等。

Notes: 安裝flink需要一些環境準備,前期準備可以參考相關文章《環境準備》《安裝Docker》等文章,這裡不再贅述。

(1) 拉取flink映象

Note: 這裡可以根據實際情況指定安裝的版本

 docker pull flink:1.10.0-scala_2.12

(2) 編寫docker-compose.yml

Note:flink使用8081等埠,要事先保證8081埠未被佔用。

在opt下建立flink 目錄

mkdir /opt/flink -p



編寫docker-compose.yml,放在/opt/flink下面

Note: 會使用8081等埠,要事先保證8081埠未被佔用。

version: "2.1"
services:
  jobmanager:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink}
    expose:
      - "6123"
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager

  taskmanager:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink}
    expose:
      - "6121"
      - "6122"
    depends_on:
      - jobmanager
    command: taskmanager
    links:
      - "jobmanager:jobmanager"
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager


(3) 生成啟動

進入/opt/flink,依次執行以下命令

cd /opt/flink/
docker-compose build
docker-compose up -d --force-recreate
docker-compose down
docker-compose restart

(4) 檢視安裝效果

瀏覽器上檢視頁面dashboard
在瀏覽器輸入地址:http://X.X.0.101:8081

Note: 以自己安裝flink的IP地址來訪問



大告成功。

常見坑及解決方案

儘管官方文件提供了標準安裝文件,但是有時候在實際場景中,手氣可能比較差,會遭遇各種坑。
這裡將筆者在安裝中遇到問題整理一下,希望給新手一些參考。

問題1

如果執行docker-compose 命令報錯:

-bash: docker-compose: command not found

(1) 先檢查pip是否已經安裝:

pip -V 

如果出現提示

bash: pip: command not found

安裝pip

yum -y install epel-release
yum -y install python-pip

#升級
pip install --upgrade pi

安裝Docker-Compose

pip install docker-compose

檢視是否安裝成功

docker-compose -version

返回版本號

docker-compose version 1.29.2, build unknown

問題2

如果出現如下

You are using pip version xxx; however, version xxx is available

這種字樣,說明是pip版本過低,需要升級

可以嘗試執行

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

如果失敗。有可能是因為本機安裝的python版本過低。比如,本機可能是python2,實際上需要python3.

執行下面命令

python -V

Python 2.7.5

再次執行命令

python3 -V

Python 3.6.8

修改yum相關檔案

vi /usr/bin/yum

修改首行

!/usr/bin/python 為 #!/usr/bin/python2



再次輸入

python -V

Python 3.6.8

然後再次執行pip升級

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

參考

相關文章