阿里云一键部署 Spark 分布式集群

简介: Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,可以完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等。通过ROS大家可以在阿里云上一键部署Spark集群。

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,可以完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。本文主要目的是为大家提供一种非常简单的方法,在阿里云上部署Spark集群。
通过<阿里云ROS资源编排服务>,将VPC、NAT Gateway、ECS创建,Hadoop和Spark部署过程自动化,使大家能够非常方便地部署一个Spark集群。本文创建的Spark集群包含三个节点:master.hadoop,slave1.hadoop,slave2.hadoop。

急速部署Spark集群

一键部署Spark集群>>
screenshot
screenshot

注意:

必须确保可以正确下载Jdk,Hadoop,Scala和Spark安装包,我们可以选择类似如下的URL:


  • 利用该模板创建时,只能选择CentOS系统;
  • 为了防止Timeout 失败,可以设置为120分钟;
  • 我们选择的数据中心在上海/北京。
  • ROS模板安装Spark四部曲

    Spark的依赖环境比较多,一般安装Spark可分为四步:安装配置Hadoop集群,安装配置Scala,安装配置Spark包和启动测试集群。

    1. 安装配置Hadoop

    安装Hadoop比较复杂,我们在上一篇博客《阿里云一键部署 Hadoop 分布式集群》中已经做过详细介绍,这里不再赘述。

    2. 安装配置Scala

    Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架,Scala可以像操作本地集合对象一样轻松地操作分布式数据集。

        "aria2c $ScalaUrl \n",
        "mkdir -p $SCALA_HOME \ntar zxvf scala-*.tgz -C $SCALA_HOME \ncd $SCALA_HOME \nmv scala-*.*/* ./ \nrmdir scala-*.* \n",
        "echo >> /etc/profile \n",
        "echo export SCALA_HOME=$SCALA_HOME >> /etc/profile \n",
        "echo export PATH=$PATH:$SCALA_HOME/bin >> /etc/profile \n",
        "ssh root@$ipaddr_slave1 \"mkdir -p $SCALA_HOME; mkdir -p $SPARK_HOME; exit\" \n",
        "ssh root@$ipaddr_slave2 \"mkdir -p $SCALA_HOME; mkdir -p $SPARK_HOME; exit\" \n",
        "scp -r $SCALA_HOME/*  root@$ipaddr_slave1:$SCALA_HOME \n",
        "scp -r $SCALA_HOME/*  root@$ipaddr_slave2:$SCALA_HOME \n",
    

    3. 安装配置Spark

    Master上安装Spark,并将配置正确后的Spark Home目录远程复制到Slave主机上,并设置环境变量。

        "aria2c $SparkUrl \n",
        "mkdir -p $SPARK_HOME \ntar zxvf spark-*hadoop*.tgz -C $SPARK_HOME \ncd $SPARK_HOME \nmv spark-*hadoop*/* ./ \nrmdir spark-*hadoop* \n",
        "echo >> /etc/profile \n",
        "echo export SPARK_HOME=$SPARK_HOME >> /etc/profile \n",
        "echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile \n",
        "source /etc/profile \n",
        " \n",
        "cp $SPARK_HOME/conf/slaves.template $SPARK_HOME/conf/slaves \n",
        "echo $ipaddr_slave1 > $SPARK_HOME/conf/slaves \n",
        "echo $ipaddr_slave2 >> $SPARK_HOME/conf/slaves \n",
        "cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh \n",
        "echo export SCALA_HOME=$SCALA_HOME > $SPARK_HOME/conf/spark-env.sh \n",
        "echo export JAVA_HOME=$JAVA_HOME   >> $SPARK_HOME/conf/spark-env.sh \n",
        "scp -r $SPARK_HOME/*  root@$ipaddr_slave1:$SPARK_HOME \n",
        "scp -r $SPARK_HOME/*  root@$ipaddr_slave2:$SPARK_HOME \n",
        " \n",
        "ssh root@$ipaddr_slave1 \"echo >> /etc/profile;echo export SCALA_HOME=$SCALA_HOME >> /etc/profile;echo export PATH=$PATH:$SCALA_HOME/bin >> /etc/profile;echo export SPARK_HOME=$SPARK_HOME >> /etc/profile;echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile;exit\" \n",
        "ssh root@$ipaddr_slave2 \"echo >> /etc/profile;echo export SCALA_HOME=$SCALA_HOME >> /etc/profile;echo export PATH=$PATH:$SCALA_HOME/bin >> /etc/profile;echo export SPARK_HOME=$SPARK_HOME >> /etc/profile;echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile;exit\" \n",
    

    4. 启动测试集群

    最后格式化HDFS,关闭防火墙,启动集群。

        "hadoop namenode -format \n",
        "systemctl stop  firewalld \n",
        "$HADOOP_HOME/sbin/start-dfs.sh \n",
        "$HADOOP_HOME/sbin/start-yarn.sh \n",
        "$SPARK_HOME/sbin/start-all.sh \n",
    

    测试部署结果

    创建完成后,查看资源栈概况:
    screenshot

    浏览器中输入图中的的SparkWebsiteURL,得到如下结果,则部署成功:
    screenshot

    ROS示例模板

    Spark_Hadoop_Distributed_Env_3_ecs.json:通过该模板可以一键部署上面的集群。
    Spark_Hadoop_ecsgroup.json:该模板允许用户指定slaves节点的数量。
    screenshot

    相关实践学习
    使用ROS创建VPC和VSwitch
    本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
    ROS入门实践
    本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
    相关文章
    |
    3月前
    |
    存储 负载均衡 NoSQL
    【赵渝强老师】Redis Cluster分布式集群
    Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
    281 2
    |
    7月前
    |
    分布式计算 运维 搜索推荐
    立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
    蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
    346 57
    |
    4月前
    |
    存储 关系型数据库 分布式数据库
    喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
    阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
    |
    8月前
    |
    Cloud Native 关系型数据库 分布式数据库
    登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
    阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
    |
    6月前
    |
    监控 Linux 应用服务中间件
    Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
    通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
    2034 57
    |
    5月前
    |
    人工智能 分布式计算 DataWorks
    一体系数据平台的进化:基于阿里云 EMR Serverless Spark 的持续演进
    本文介绍了一体系汽配供应链平台如何借助阿里云EMR Serverless Spark实现从传统Hadoop平台向云原生架构的迁移。通过融合高质量零部件供应与创新互联网科技,一体系利用EMR Serverless Spark和DataWorks构建高效数据分析体系,解决大规模数据处理瓶颈。方案涵盖实时数据集成、Lakehouse搭建、数仓分层设计及BI/ML应用支持,显著提升数据处理性能与业务响应速度,降低运维成本,为数字化转型奠定基础。最终实现研发效率提升、运维压力减轻,并推动AI技术深度整合,迈向智能化云原生数据平台。
    201 4
    |
    5月前
    |
    分布式计算 运维 监控
    Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速
    本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。
    293 1
    |
    7月前
    |
    Cloud Native 关系型数据库 分布式数据库
    登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
    云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇

    热门文章

    最新文章