Docker安裝flink及避坑指南


導航

  • 無處不在的大數據
  • 安裝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

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM