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

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

急速部署Spark集群

一键部署Spark集群>>

注意:

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",

测试部署结果

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

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

ROS示例模板

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

时间: 2024-08-30 19:09:09

阿里云一键部署 Spark 分布式集群的相关文章

【DockerCon2017最新技术解读】如何在阿里云一键部署高可用的Kubernetes集群

摘要:在云栖TechDay34期:DockerCon2017最新的技术解读中,阿里云的容器服务团队技术专家谢瑶瑶做了题为<Kubernetes on Alibaba Cloud>的分享,主要介绍了Kubernetes的基本概念,如何在阿里云快速一键部署高可用安全的Kubernetes集群以及阿里云的Cloud Provider所提供的能力. 以下内容根据演讲嘉宾现场视频以及速记整理而成. 今天主要会分享三个方面的问题: Kubernetes的基本概念介绍 如何在阿里云快速一键部署高可用安全的K

阿里云一键部署LNMP(Linux+Nginx+MySQL+PHP)栈

LNMP代表Linux+Nginx+MySQL+PHP网站服务器架构.本文主要目的是为大家提供一种非常简单的方法,在阿里云上部署LNMP栈. 通过<阿里云ROS资源编排服务>,将VPC.NAT Gateway.ECS创建,LNMP栈部署过程自动化,使大家能够非常方便地部署一个LNMP栈. 急速部署LNMP栈 一键部署LNMP栈>> 注意: 必须确保可以正确下载nginx-.rpm安装包,我们可以选择类似如下的URL: http://nginx.org/packages/centos

阿里云一键部署 Docker Datacenter

资源编排ROS 是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的. 了解更多 DDC 简介 2016年2月下旬,Docker发布了企业级容器管理和服务部署的整体解决方案平台-Docker Datacenter,简称DDC.DDC 有三个组件构成: 1. Docker Universal Control Plane(Docker UCP),这是套图形化管理界面: 2. Docker Tru

在阿里云上部署生产级别Kubernetes集群

阿里云是国内非常受欢迎的基础云平台,随着Kubernetes的普及,越来越多的企业开始筹划在阿里云上部署自己的Kubernetes集群.本文将结合实战中总结的经验,分析和归纳一套在阿里云上部署生产级别Kubernetes集群的方法.文中所采取的技术方案具有一定的主观性,供各位读者参考.在实践中可以根据具体使用场景进行优化. 目标 当我们刚接触Kubernetes进行测试集群的搭建时,往往会选择一篇已有的教程,照着教程完成集群搭建.我们很少去质疑教程作者每一步操作的合理性,只想快点把集群搭建起来,

一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop                     NameNode.DFSZKFailoverController(zkfc)slaver1    192.168.199.131    jdk.hadoop                       NameNode.DFSZKFailoverController(

超详细从零记录Hadoop2.7.3完全分布式集群部署过程

超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程.包含,Ubuntu服务器创建.远程工具连接配置.Ubuntu服务器配置.Hadoop文件配置.Hadoop格式化.启动.(首更时间2016年10月27日) 主机名/hostname IP 角色 hadoop1 192.168.193.131 ResourceManager/NameNode/SecondaryNameNode hadoop2 192.168.193.132 NodeManager/

spark1.6分布式集群环境搭建

1. 概述 本文是对spark1.6.0分布式集群的安装的一个详细说明,旨在帮助相关人员按照本说明能够快速搭建并使用spark集群.   2. 安装环境 本安装说明的示例环境部署如下: IP 外网IP hostname 备注 10.47.110.38 120.27.153.137 iZ237654q6qZ Master.Slaver 10.24.35.51 114.55.56.190 iZ23pd81xqaZ Slaver 10.45.53.136 114.55.11.55 iZ23mr5ukp

漫谈分布式集群的负载均衡—口水篇

1 什么是分布式集群 为了理解分布式集群这个概念,我们先说说这两个概念:"集群"和"分布式".艺术来源于生活,计算机科学亦是如此.我们先通过例子,来了解一下现实生活中的"集群"和"分布式". 从开餐馆说起:你开了一家餐馆,自己掌勺后厨(即做菜).随着生意越来越好,发现自己忙不过来.于是你聘请了两个厨师,你们三位厨师就是一个"集群".主要的职责是:洗菜.配菜.炒菜.你们关系如下: 随着生意越来越好,两种方式增

MySQL大型分布式集群

本套课程将通过分布式集群和分库分表两部分内容进行讲解 1.主要解决针对大型网站架构中持久化部分中,大量数据存储以及高并发访问所带来是数据读写问题.分布式是将一个业务拆分为多个子业务,部署在不同的服务器上.集群是同一个业务,部署在多个服务器上. 2.着重对数据切分做了细致丰富的讲解,从数据切分的原理出发,一步一步深入理解数据的切分,通过深入理解各种切分策略来设计和优化我们的系统.这部分中我们还用到了数据库中间件和客户端组件来进行数据的切分,让广大网友能够对数据的切分从理论到实战都会有一个质的飞跃.