当前位置: 首页 » 综合知识 » it知识 » 正文

如何使用docker快速搭建Spark集群

发布时间:2023-07-24 以下文章来源于网友投稿,内容仅供参考!

准备工作

spark集群

spark运行时架构图


如上图: spark集群由以下两个部分组成

如何docker化(本例使用standalone模式)

1、将spark集群拆分

      base(基础镜像)

      master(主节点镜像)

      worker(工作镜像)

2、编写base dockerfile

注: 为方便切换版本基础镜像选择的是centos, 所以要下载java和spark, 方便调试, 可以下载好安装文件后本地搭建一个静态文件服务器, 使用node.js 的可以快速搞定

命令如下

 npm install http-server -g
 http-server -p 54321 ~/downloads

正式开始写dockerfile

from centos:7
maintainer ravenzz <raven.zhu@outlook>

# 安装系统工具
run yum update -y
run yum upgrade -y
run yum install -y byobu curl htop man unzip nano wget
run yum clean all

# 安装 java
env jdk_version 8u11
env jdk_build_version b12
# 如果网速快,可以直接从源站下载
#run curl -lo "download.oracle/otn-pub/java/jdk/$jdk_version-$jdk_build_version/jdk-$jdk_version-linux-x64.rpm" -h 'cookie: oraclelicense=accept-securebackup-cookie' && rpm -i jdk-$jdk_version-linux-x64.rpm; rm -f jdk-$jdk_version-linux-x64.rpm;
run curl -lo "192.168.199.102:54321/jdk-8u11-linux-x64.rpm" && rpm -i jdk-$jdk_version-linux-x64.rpm; rm -f jdk-$jdk_version-linux-x64.rpm;
env java_home /usr/java/default
run yum remove curl; yum clean all
workdir spark

run \
 curl -lo '192.168.199.102:54321/spark-2.1.0-bin-hadoop2.7.tgz' && \
 tar zxf spark-2.1.0-bin-hadoop2.7.tgz

run rm -rf spark-2.1.0-bin-hadoop2.7.tgz
run mv spark-2.1.0-bin-hadoop2.7/* ./

env spark_home /spark
env path /spark/bin:$path
env path /spark/sbin:$path

3、编写master dockerfile

from ravenzz/spark-hadoop

maintainer ravenzz <raven.zhu@outlook>

copy master.sh /

env spark_master_port 7077
env spark_master_webui_port 8080
env spark_master_log /spark/logs

expose 8080 7077 6066

cmd ["/bin/bash","/master.sh"]

4、编写worker dockerfile

 from ravenzz/spark-hadoop

 maintainer ravenzz <raven.zhu@outlook> 
 copy worker.sh /

 env spark_worker_webui_port 8081
 env spark_worker_log /spark/logs
 env spark_master "spark://spark-master:32769"

 expose 8081

 cmd ["/bin/bash","/worker.sh"]

5、dockerpose

 version: '3'

services:
 spark-master:
 build:
 context: ./master
 dockerfile: dockerfile
 ports:
 - "50001:6066"
 - "50002:7077" # spark_master_port
 - "50003:8080" # spark_master_webui_port
 expose:
 - 7077

 spark-worker1:
 build:
 context: ./worker
 dockerfile: dockerfile
 ports:
 - "50004:8081"
 links:
 - spark-master
 environment:
 - spark_master=spark://spark-master:7077

 spark-worker2:
 build:
 context: ./worker
 dockerfile: dockerfile
 ports:
 - "50005:8081"
 links:
 - spark-master
 environment:
 - spark_master=spark://spark-master:7077

6、测试集群

dockerpose up

访问localhost:50003/ 结果如图


  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师