云服务器配置 docker-spark

本文详细描述了在腾讯云轻量应用服务器上安装和配置Spark集群的过程,包括安装Docker、创建docker-compose.yml文件、调整worker节点内存、启动服务、查看与验证以及解决遇到的问题,如内存限制和权限管理。
摘要由CSDN通过智能技术生成

云服务器配置 docker-spark

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配置过一版,直接卡掉,重启才行

后来找了个小型的,参考这个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: 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

接着运行示例:

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

以及修改 SSH 连接时长,可以参考这个5

清理 Docker 镜像和容器,可以参考这个6

docker ps -aq
# 列出所有容器

docker stop $(docker ps -aq)
# 停止所有的容器

docker rm $(docker ps -aq)
# 删除所有的容器



  1. 腾讯云服务器下利用 Docker 极速搭建 Spark 集群和 HDFS 集群_腾讯云 spark集群-CSDN博客 ↩︎

  2. Docker 搭建Spark 依赖singularities/spark:2.2镜像 - hongdada - 博客园 ↩︎

  3. Spark程序排错系列(System memory * must be at least *)_system memory must be at least-CSDN博客 ↩︎

  4. docker命令不需要敲sudo的方法 - yuchen16 - 博客园 ↩︎

  5. 解决ssh连接云服务器长时间不操作断连问题(适用于腾讯和阿里服务器)_腾讯云ssh长时间不使用-CSDN博客 ↩︎

  6. 停止、删除所有的docker容器和镜像 - 知乎 ↩︎

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。使用 Docker Compose,我们可以将多个容器的配置文件整合到一个 `docker-compose.yml` 文件中,并使用一个命令即可启动、停止、重启这些容器。 在配置 Docker Compose 时,首先需要创建一个名为 `docker-compose.yml` 的文件。在该文件中,我们可以定义多个服务(services),每个服务对应一个容器。通过指定镜像名称、端口映射、环境变量和容器启动命令等参数,我们可以对每个服务进行详细的配置。 在 `docker-compose.yml` 文件中,可以使用以下示例的语法来定义一个服务: ```yaml version: '3' services: web: image: nginx:latest ports: - 80:80 database: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=mydb ``` 上述例子定义了两个服务,`web` 和 `database`。`web` 服务使用 `nginx:latest` 镜像,并将主机的 80 端口映射到容器的 80 端口。`database` 服务使用 `mysql:latest` 镜像,并指定了两个环境变量。 一旦 `docker-compose.yml` 文件配置完毕,我们可以在命令行中使用以下命令进行容器的管理: - `docker-compose up`:启动所有在 `docker-compose.yml` 文件中定义的容器; - `docker-compose down`:停止并删除所有容器; - `docker-compose start`:启动之前创建过的容器; - `docker-compose stop`:停止正在运行的容器; - `docker-compose restart`:重启正在运行的容器。 通过配置 Docker Compose,我们可以方便地管理和部署多个容器,提高开发和部署的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值