云服务器配置 docker-spark
- [1. 安装](#1. 安装)
- [2. 启动](#2. 启动)
- [3. 查看](#3. 查看)
- [4. 验证](#4. 验证)
- [5. 其他](#5. 其他)
1. 安装
我的服务器是腾讯云轻量应用服务器,2 核 2 G,已经内置了 docker, 配置大概如下:
ubuntu@VM-20-5-ubuntu
---------------------
OS: Ubuntu 22.04 LTS x86_64
Host: CVM 3.0
Kernel: 5.15.0-86-generic
Uptime: 1 hour, 9 mins
Packages: 759 (dpkg), 4 (snap)
Shell: bash 5.1.16
Resolution: 1024x768
Terminal: /dev/pts/4
CPU: AMD EPYC 7K62 (2) @ 2.595GHz
GPU: 00:02.0 Cirrus Logic GD 5446
Memory: 1287MiB / 1963MiB
由于规格比较小,所以并不能够撑起较大的服务,我之前按照这个^1^配置过一版,直接卡掉,重启才行
首先找个地方创建docker-compose.yml
,我的配置如下:
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: 1g
links:
- master
主要是将woker
节点的内存改小了,毕竟服务器规格也小
2. 启动
主要就是这个命令
docker-compose up -d
3. 查看
得先去控制台防火墙添加一下 50070 和 8080 这两个端口
接着用云服务公网地址加上端口号就可以访问
4. 验证
先进入容器:
docker exec -it 0c7 /bin/bash
然后去 Spark 的安装位置:
cd /usr/local/spark-2.2.1
接着运行示例:
bash
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 1g \
--total-executor-cores 1 \
./examples/jars/spark-examples_2.11-2.2.1.jar \
10
5. 其他
之前配置的时候,感觉机器内存小,所以启动容器的时候给worker
节点分配了200M
的内存,然后就寄了
spark
提交任务的时候似乎是有一个最小内存的限制,具体分析可以看这个^3^
由于这里分配的内存太小,所以触发了这个限制,导致任务无法运行
后来就改成分配 1 G 的内容了
还有一个问题就是 Docker 总是需要敲 sudo,可以参考这个^4^