docker中spark+scala安裝配置
一、scala安裝
首先下載scala壓縮包
wget https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz
解壓
tar -zxvf scala-2.11.7.tgz
移動目錄
mv scala-2.11.7 /usr/local/
改名
cd /usr/local/
mv scala-2.11.7 scala
配置環境變數
vim /etc/profile
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
環境變數生效
source /etc/profile
檢視scala版本
scala -version
分發scala到其他主機
scp -r /usr/local/scala/ [email protected]:/usr/local/
scp -r /usr/local/scala/ [email protected]:/usr/local/
二、spark安裝
複製spark壓縮包 到容器中
docker cp /root/spark-2.1.2-bin-hadoop2.4.tgz b0c77:/
檢視並解壓
在profile中新增spark環境變數
生效環境變數
source /etc/profile
編輯spark-env.sh
vim /usr/local/spark/conf/spark-env.sh
- JAVA_HOME:Java安裝目錄
- SCALA_HOME:Scala安裝目錄
- HADOOP_HOME:hadoop安裝目錄
- HADOOP_CONF_DIR:hadoop叢集的配置檔案的目錄
- SPARK_MASTER_IP:spark叢集的Master節點的ip地址
- SPARK_WORKER_MEMORY:每個worker節點能夠最大分配給exectors的記憶體大小
- SPARK_WORKER_CORES:每個worker節點所佔有的CPU核數目
- SPARK_WORKER_INSTANCES:每臺機器上開啟的worker節點的數目
修改slaves檔案
cp slaves.template slaves
vi conf/slaves
scp -r /usr/local/spark/ Master:/usr/local
scp -r /usr/local/spark/ Slave2:/usr/local
同時其他兩個節點也要修改 /etc/profile
啟動spark
./sbin/start-all.sh
成功開啟之後使用jps在Master、Slave1和Slave2節點上分別可以看到新開啟的Master和Worker程序。
成功開啟Spark叢集之後可以進入Spark的WebUI介面,可以通過
SparkMaster_IP:8080
埠對映:
iptables -t nat -A DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:8080
此時我們可以通過對映到宿主機的埠訪問,可見有兩個正在執行的Worker節點。
開啟Spark-shell
使用
spark-shell
推出spark-shell的命令是“:quit”
因為shell在執行,我們也可以通過
SparkMaster_IP:4040(172.17.0.2:4040)
訪問WebUI檢視當前執行的任務。
先進行埠對映:
iptables -t nat -A DOCKER -p tcp --dport 4040 -j DNAT --to-destination 172.17.0.2:4040