docker中搭建Spark集群

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

首先安装scala

下载地址:https://www.scala-lang.org/download/
根据自己需要进行选择,我选择的是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

根据自己需要进行选择,我选择的是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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker搭建Spark集群,需要执行以下步骤: 1. 安装DockerDocker Compose 确保已经安装DockerDocker Compose,如果没有安装,可以按照官方文档进行安装。 2. 创建Docker镜像 创建一个Dockerfile文件,使用Spark官方镜像作为基础镜像,并添加配置文件和应用程序。在Dockerfile所在的目录下运行以下命令创建镜像: ``` docker build -t spark-image . ``` 3. 创建Docker容器 使用Docker Compose创建一个包含多个节点的容器集群,可以在docker-compose.yml文件定义每个容器的配置。以下是一个简单的例子: ``` version: '3' services: master: image: spark-image ports: - "8080:8080" - "7077:7077" environment: - SPARK_MODE=master - SPARK_MASTER_HOST=master worker: image: spark-image environment: - SPARK_MODE=worker - SPARK_WORKER_CORES=2 - SPARK_WORKER_MEMORY=2g - SPARK_MASTER_URL=spark://master:7077 ``` 在这个例子,我们定义了一个master节点和一个worker节点,master节点暴露了端口8080和7077,worker节点定义了一些环境变量。 4. 启动集群Docker Compose文件所在的目录下运行以下命令启动集群: ``` docker-compose up -d ``` 这将启动所有容器,并将它们连接在一起,形成一个Spark集群。 5. 运行应用程序 现在,我们可以使用Spark提交应用程序。可以使用以下命令在master节点上提交一个应用程序: ``` docker exec -it <master_container_id> /bin/bash ./bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.11-2.4.0.jar 10 ``` 这将在集群上启动一个Spark Pi应用程序。 以上就是在Docker搭建Spark集群的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值