前言
這裏解釋下 題目中的 docker-compose,這其實是docker提供的一種命令行工具,用來定義和運行由多個容器組成的應用,初一看,這句有點不好理解,那先不着急,我先列一個場景,現在有一個需求是,用docker完成 一個應用A的部署,且這個應用A需要依賴多個應用A1、A2、A3....才能正常運行,而且多個應用的部分配製還要能靈活的配製,..說到這,你是不是有點頭痛了,如果用常規的docker 部署顯示非常麻煩。。。。這時候如果用docker-compose來做,就顯得十分容易且輕鬆,下面就介紹具體部署過程
一、安裝docker-compose
1、安裝pip
sudo apt-get install python-pip
2、確認pip版本
sudo pip --version
3、更新pip
sudo apt-get pip install --upgrade pip
4、安裝docker-compose
sudo apt-get pip install docker-compose
5、查看dcoker-compose版本
docker-compose version
二、安裝spark集羣
注: 此操作前請切換到root用戶,因爲下面的所有命令都是基於root下的操作,並創建
/spark-need/docker-compose-conf 目錄,後面所有操作都在此目錄下進行(你們也可以創建一個其它文件夾,自己喜歡就好)
1、下載spark鏡像
docker search spark
選擇singularities/spark 這個, 這個比較小,好用
下載鏡像
docker pull singularities/spark
查看鏡像
docker images
已經成功下載
2、創建docker-compose.yml配製文件
文件內容如下
version: "2"
services:
master:
image: singularities/spark
command: start-spark master
hostname: master
ports:
- "6066:6066"
- "7070:7070"
- "8080:8080"
- "50070:50070"
worker:
image: singularities/spark
command: start-spark worker master
environment:
SPARK_WORKER_CORES: 1
SPARK_WORKER_MEMORY: 2g
links:
- master
具體配製解釋請點擊 docker-compose.yml 的詳細解釋與說明
3、啓動集羣
docker-compose up -d
3、查看集羣
docker-compose ps
注:ports下有很多端口,部分端口的解釋是
50070:HDFSwebUI的端口號
9000:非高可用訪問數rpc端口
8080:sparkwebUI的端口號
8081:worker的webUI的端口號
7077:spark基於standalone的提交任務的端口號
4、訪問 spark 和hadoop的webUI
訪問http://IP:50070 HDFSwebUI的端口號 本例子對應的 http://192.168.153.130/50070
訪問http://IP:8080 sparkwebUI的端口號 本例子對應的 http://192.168.153.130/8080
到此,說明spark的集羣已經成功運行起來了