阿里云一键部署 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

注意:

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使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
13天前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
58 3
|
1月前
|
存储 分布式计算 Serverless
|
7天前
|
分布式计算 安全 OLAP
7倍性能提升|阿里云AnalyticDB Spark向量化能力解析
AnalyticDB Spark如何通过向量化引擎提升性能?
|
10天前
|
SQL 分布式计算 监控
|
19天前
|
存储 NoSQL 算法
MongoDB保姆级指南(中):从副本集群、分片集群起航,探索分布式存储的趋势!
本文一起来聊聊MongoDB集群,顺带以MongoDB集群为起点,共同探讨一下分布式存储的发展趋势~
63 15
|
21天前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
18天前
|
Cloud Native 关系型数据库 分布式数据库
中国金融分布式数据库,阿里云双料冠军!
中国金融分布式数据库,阿里云双料冠军!
36 1
|
5天前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
15 0
|
29天前
|
SQL 分布式计算 监控
在hue上部署spark作业
7月更文挑战第11天
41 3
|
6天前
|
存储 运维 安全
多云网络部署存在挑战,F5分布式云应用简化方案解读
多云网络部署存在挑战,F5分布式云应用简化方案解读
14 0