实战:大数据Spark简介与docker-compose搭建独立集群

这篇具有很好参考价值的文章主要介绍了实战:大数据Spark简介与docker-compose搭建独立集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

很多同学都使用过经典的大数据分布式计算框架hadoop,其分布式文件系统HDFS对数据管理很友好,但是计算能力较Spark还是不足。俗话说工欲善其事必先利其器,今天就介绍docker容器化部署Spark集群。

技术积累

Spark简介

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。对于分布式计算方面Spark基于内存进行分布式计算,大大提升性能。
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

Spark核心功能及优势

更快的速度
内存计算下,Spark 比 Hadoop 快100倍。
易用性
Spark 提供了80多个高级运算符。
通用性
Spark 提供了大量的库,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 开发者可以在同一个应用程序中无缝组合使用这些库。
支持多种资源管理器
Spark 支持 Hadoop YARN,Apache Mesos,及其自带的独立集群管理器

Spark运行架构

Spark框架的核心是一个计算引擎,整体来说,它采用了标准的master-slave的结构
图所示:展示了一个Spark执行时的基本架构,图中的Driver表示master,负责管理整个集群中的作业任务调度。图中的Executor则是slave,负责实际执行任务。
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

用户程序创建 SparkContext 后,它会连接到集群资源管理器,集群资源管理器会为用户程序分配计算资源,并启动 Executor;
Driver 将计算程序划分为不同的执行阶段和多个 Task,之后将 Task 发送给 Executor;
Executor 负责执行 Task,并将执行状态汇报给 Driver,同时也会将当前节点资源的使用情况汇报给集群资源管理器。

Spark独立集群搭建

安装docker和docker-compose

docker与docker-compose安装
#安装docker社区版
yum install docker-ce
#版本查看
docker version
#docker-compose插件安装
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#可执行权限
chmod +x /usr/local/bin/docker-compose
#版本查看
docker-compose version

docker-compose编排

docker-compose-spark.yaml

version: "3.3"
services:
  master:
    image: registry.cn-hangzhou.aliyuncs.com/senfel/spark:3.2.1
    container_name: master
    user: root
    command: " /opt/bitnami/java/bin/java -cp /opt/bitnami/spark/conf/:/opt/bitnami/spark/jars/* -Xmx1g org.apache.spark.deploy.master.Master --host master --port 7077 --webui-port 8080 "
    environment:
      - SPARK_MODE=master
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    volumes:
      - ./python:/python
    network_mode: host
    extra_hosts:
      - "master:10.10.22.91"
      - "localhost.localdomain:127.0.0.1"

  worker1:
    image: registry.cn-hangzhou.aliyuncs.com/senfel/spark:3.2.1
    container_name: worker1
    user: root
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://master:7077
      - SPARK_WORKER_MEMORY=1G
      - SPARK_WORKER_CORES=1
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    network_mode: host
    extra_hosts:
      - "master:10.10.22.91"
      - "localhost.localdomain:127.0.0.1"
  worker2:
    image: registry.cn-hangzhou.aliyuncs.com/senfel/spark:3.2.1
    container_name: worker2
    user: root
    environment:
      - SPARK_MODE=worker
      - SPARK_MASTER_URL=spark://master:7077
      - SPARK_WORKER_MEMORY=1G
      - SPARK_WORKER_CORES=1
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    network_mode: host
    extra_hosts:
      - "master:10.10.22.91"
      - "localhost.localdomain:127.0.0.1"

docker-compose编排并运行容器

docker-compose -f docker-compose-spark.yaml up -d
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

浏览器访问
http://10.10.22.91:8080/
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

至此Spark独立集群搭建完成。
当然如果需要整合HDFS可以直接搭建一个Hadoop集群。这里不再累述,请参照之前的博文。
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

Spark集群官方案例测试

1、任意选择一个节点执行圆周率计算,这里选择master
#查看spark master容器信息
docker ps | grep master
#进入容器 默认就会进入/opt/bitnami/spark
docker exec -it master bash
#执行官方计算圆周率的案例
./bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.12-3.2.1.jar 1000

参数:
–master 提交集群
–class 运行主类路径
1000 运行1000次

2、查看执行结果
Pi is roughly 3.141485671414857
计算次数越多这个圆周率精度越准确
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker
实战:大数据Spark简介与docker-compose搭建独立集群,spark,大数据,docker,大数据,spark,docker

写在最后

Spark是采用分布式数据集RDD对数据进行管理,用内存进行分布式计算,它的性能叫hadoop有显著的提升。对于Spark独立集群的搭建我们用docker容器也是比较的简单,当然,我们也可以集成在springboot开发出适应业务的功能安装需求进行远程提交任务。文章来源地址https://www.toymoban.com/news/detail-679094.html

到了这里,关于实战:大数据Spark简介与docker-compose搭建独立集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker-compose搭建gitlab

    使用Docker搭建GitLab带来的好处。它简化了部署过程,将安装和配置整合为一个容器,并通过简单的命令即可启动和运行GitLab实例。Docker的隔离和容器化特性确保了GitLab与其依赖的软件环境的隔离,避免了冲突问题。此外,Docker的可移植性使得GitLab可以在不同平台和环境中运行

    2024年01月18日
    浏览(51)
  • 使用docker-compose搭建lnmpr环境

    源码gitee • 使用 Dockerfile 定义应用程序的环境。 • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 • 最后,执行 docker-compose up -d 命令来启动并运行整个应用程序。 nginx默认页面 php默认页面 php redis扩展信息 mysql未配置之前页面,出现的

    2024年02月14日
    浏览(51)
  • 使用docker-compose搭建mysql主从

    目录 一、docker-compose和主从的简介 1、docker-compose 2、mysql主从 3、为什么要使用docke-compose? 二、部署mysql主从集群 1、mysql-master主库 2、mysql-slave从库 三、安装docker-compose 1、上传文件 2、添加可执行权限 3、创建并编辑docker-compose.yml文件 4、运行docker-composeysql.yml 四、配置mysql主

    2024年02月07日
    浏览(39)
  • 使用Docker-Compose搭建Redis集群

    3主+3从 由于仅用于测试,故我这里只用1台服务器进行模拟 redis列表 在server上创建一个目录用于存放redis集群部署文件。这里我放的路径为/root/redis-cluster 在/opt/docker/redis-cluster目录下创建redis-1,redis-2,redis-3,redis-4,redis-5,redis-6文件夹 注意:port值不能都为6379,根据上面redis列表设

    2024年02月15日
    浏览(41)
  • 【实战篇】docker-compose部署go项目

    一、场景: 二、需求 三、实操 Stage 1:GoLand 中 build 生成二进制文件 Stage 2:编写 Dockerfile Stage 3:编写 docker-compose.yaml Stage 4:文件上传到 ubuntu 服务器上,并设置文件读写权限 Stage 5:运行 docker-compose  Stage 6:查看运行效果 四、问题 A. docker + docker-compose 安装 B. 运行docker-co

    2024年02月16日
    浏览(71)
  • 实战:用docker-compose容器化springboot项目

    前面我们学习和实战了用dockerfile构建镜像,通过镜像可以任意在docker环境容器化部署项目。但是作为WEB领域的开发者,大多都是微服务架构,一个项目会有很多的子项目和中间件,一个个的容器化部署会非常的麻烦。那么,此时我们可以用docker-compose批量构建镜像和容器化,

    2024年02月10日
    浏览(44)
  • docker/docker-compose 部署 nginx+mysql+wordpress 实战

    MariaDB 作为后面的关系型数据库,端口号是 3306; WordPress 是中间的应用服务器,使用 MariaDB 来存储数据,它的端口是 80; Nginx 是前面的反向代理,它对外暴露 80 端口,然后把请求转发给 WordPress 。 先来运行 MariaDB 。根据说明文档,需要配置 MARIADB_DATABASE 等几个环境变量,用

    2024年02月10日
    浏览(52)
  • 实战:win10安装docker并用docker-compose构建运行容器

    Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。但是某些时候我们没有Linux环境怎么破?为了解决这个问题我们可以用VM虚拟机上安装Linux系统进行处理。然而对于我们的WIN10系统自带Hyper-V虚拟机,简直不要太爽。我们可以直接开启Hyper-V服务,并安

    2024年02月12日
    浏览(54)
  • docker-compose搭建prometheus+grafana+钉钉告警

    前言: 本文将介绍使用docker-compose部署搭建promtheus监控容器、主机、服务等相关状态; 配合granfana面板构建监控大屏; 由于grafana的报警不是很友好,使用dingtalk,配合altermanager,实现钉钉报警。 docker环境搭建不再介绍,网上已经一大堆。  首先介绍一下需要部署的组件:

    2024年02月16日
    浏览(46)
  • 尚硅谷Docker实战教程-笔记12【高级篇,Docker-compose容器编排】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】 尚硅谷Docker实战教程-笔记02【基础篇,Do

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包