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等。
安裝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