docker中搭建Spark集群

注意:在Hadoop集群搭建完成的基础上进行此种操作;我是三台虚拟机同时进行安装操作,当然也可以通过scp方式进行虚拟机直接文件的传递,在此不表。

首先安装scala

下载地址:https://www.scala-lang.org/download/
docker中搭建Spark集群_第1张图片根据自己需要进行选择,我选择的是scala-2.12.7.tgz,然后将安装包放到共享目录下
1、创建镜像容器 -P将容器的所有端口映射到主机端口
docker run -itd -v /c/Users:/root/build -P -h master --name master --net mynetwork --ip 172.18.0.2 hadoop:master /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave1 --name slave1 --net mynetwork --ip 172.18.0.3 hadoop:slave1 /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave2 --name slave2 --net mynetwork --ip 172.18.0.4 hadoop:slave2 /bin/bash
2、运行容器
docker attach master
docker attach slave1
docker attach slave2
3、切换到共享目录并复制到安装目录、解压、删除压缩包、解压包重命名
cd /root/build/
cp scala-2.12.7.tgz /usr/local/
tar -zxvf scala-2.12.7.tgz
rm -rf scala-2.12.7.tgz
mv scala-2.12.7 scala2
4、配置scala环境变量并检测
vim /etc/profile
加入以下配置
export SCALA_HOME=/usr/local/scala2
export PATH=$PATH:$SCALA_HOME/bin
刷新配置
source /etc/profile
查看是否安装成功:scala -version

配置spark

1、下载地址:http://spark.apache.org/downloads.html
docker中搭建Spark集群_第2张图片
根据自己需要进行选择,我选择的是Spark 2.3.2.tgz,然后将安装包放到共享目录下
2、切换到共享目录并复制到安装目录、解压、删除压缩包、解压包重命名
cd /root/build/
cp spark-2.3.2-bin-hadoop2.7.tgz /usr/local/
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz
rm -rf spark-2.3.2-bin-hadoop2.7.tgz
mv spark-2.3.2-bin-hadoop2.7 spark232hadoop27
3、修改spark232hadoop27/conf目录下的配置文件
a.spark-env.sh.template另存为spark-env.sh
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
添加以下内容:
export HADOOP_CONF_DIR=/usr/local/hadoop276/
export JAVA_HOME=/usr/java/jdk8/
export SCALA_HOME=/usr/local/scala2
export SPARK_MASTER_IP=172.18.0.2
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_PORT=7078
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=2g
export SPARK_JAR=/usr/local/spark232hadoop27/lib/spark-assembly-2.3.2-hadoop2.7.0.jar
b.spark-defaults.conf.template另存为spark-defaults.conf
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
添加以下内容:
spark.master=spark://192.168.202.139:7077
c. 修改slaves文件
slaves.template,另存为slaves
cp slaves.template slaves
vim slaves
172.18.0.3
172.18.0.4
4、添加环境变量
vim /etc/profile
export SPARK_HOME=/usr/local/spark232hadoop27/
export PATH=$PATH:$SPARK_HOME/bin
刷新配置
source /etc/profile
5、测试:
a.启动hadoop
首先开启ssh服务,因为docker容器每次关闭再开启,ssh服务不会一直处于开启状态
/usr/sbin/sshd -D &
开启hadoop:
cd /usr/local/hadoop276
sbin/start-all.sh
b.启动spark集群
cd /usr/local/spark232hadoop27
sbin/start-master.sh
sbin/start-slaves.sh
c.使用jps查看进程
d.也可以通过spark-shell验证spark集群
bin/spark-shell
e.保存为镜像
docker commit -a “axh” -m “centos7 with jdk ssh hadoop spark installed” master spark:master
docker commit -a “axh” -m “centos7 with jdk ssh hadoop spark installed” slave1 spark:slave1
docker commit -a “axh” -m “centos7 with jdk ssh hadoop spark installed” slave2 spark:slave2

你可能感兴趣的:(docker,Hadoop生态)