Spark集群部署和启动与关闭


  上一篇我们讲了 Hadoop集群部署和启动与关闭,今天我们讲一下Spark集群部署和启动与关闭。

一、Spark集群部署模式

  首先我们先来了解一下Spark集群部署模式,分别有以下三种:

  1. Standalone
      Standalone(独立模式)是Spark一种简单的集群部署模式,自带完整的服务可单独部署到一个集群中,无需依赖任何其他资源调度管理系统。

  2. Mesos
      Mesos(Spark on Mesos模式)是一款资源调度管理系统,可以为Spark提供资源调度服务,由于Spark与Mesos存在密切的关系,所以在设计Spark框架时充分考虑到了对Mesos的集成。

  3. YARN
      YARN(Spark on YARN模式)是一款资源调度管理系统,支持动态资源分配策略,可以为Spark提供资源调度服务,由于在生产环境中,很多时候都要与Hadoop同在一个集群,所以采用YARN来管理资源调度,可以降低运维成本和提高资源利用率,避免出现多个资源管理器造成资源分配的混乱无序的问题。

Standalone与Spark On YARN模式下Spark程序运行过程:
  Standalone模式下Spark通过SparkContext向Cluster Manager(资源管理器,即Master)申请所需执行的资源,Cluster Manager分配应用程序执行需要的资源,在Worker节点上创建Executor,SparkContext将程序(jar包或python文件)和Task任务发送给Executor执行,并收集结果给Driver。

  Spark On YARN模式下Spark通过SparkContext向ResourceManager(资源管理器)申请所需执行的资源,ResourceManager分配应用程序执行需要的资源,为NodeManager分配一个Container,并在该Container中启动AppMaster,此时 AppMaster上运行的是SparkDriver。SparkDriver在Container上启动SparkExecutor,并调度SparkContext提交的程序和SparkTask在SparkExecutor上运行,等到所有的任务执行完毕后,向AppManager取消注册并释放资源。

二、Spark集群安装配置

  1. 下载Spark
    访问Apache资源网站下载Linux操作系统的Spark安装包spark-2.3.2-bin-hadoop2.7.tgz。

注意:还没有下载安装包的,下载地址可以去这里查看:大数据相关常用软件下载地址集锦

  1. 上传Spark安装包
    使用SecureCRT远程连接工具连接虚拟机Spark01,在存放应用安装包的目录/export/software/下执行“rz”命令上传Spark安装包。

  2. 安装Spark
    在虚拟机Spark01中,通过解压缩的方式安装Spark,将Spark安装到存放应用的目录/export/servers/。
    tar -zxvf /export/software/spark-2.3.2-bin-hadoop2.7.tgz -C /export/servers/

  3. 修改Spark配置文件
    在Spark安装目录下的conf目录存在Spark配置文件的样例文件spark-env.sh.template,需要执行“cp spark-env.sh.template spark-env.sh”命令,通过复制样例文件方式创建Spark配置文件spark-env.sh,执行“vi spark-env.sh”命令编辑配置文件
    spark-env.sh ,指定JDK安装目录和Hadoop配置文件所在目录。

export JAVA_HOME=${JAVA_HOME}
export HADOOP_CONF_DIR=/export/servers/hadoop-2.7.4/etc/hadoop/
  1. 配置Spark环境变量
    在虚拟机Spark01,执行“vi /etc/profile”命令编辑系统环境变量文件profile,配置Spark环境变量。
export SPARK_HOME=/export/servers/spark-2.3.2-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

系统环境变量文件profile配置完成后保存并退出即可,随后执行“source /etc/profile”命令初始化系统环境变量使配置内容生效。

  1. Spark环境验证
    在虚拟机Spark01,执行“spark-shell --master yarn --deploy-mode client”命令进入Spark Shell交互界面。
    在这里插入图片描述

三、Spark集群测试

  1. 在虚拟机Spark01,使用Spark官方示例SparkPi,验证Spark任务是否可以成功提交到YARN中运行。
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 2g \
--executor-memory 1g \
--executor-cores 1 \
/export/servers/spark-2.3.2-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.3.2.jar  \
10

在这里插入图片描述

  1. 在浏览器输入http://192.168.121.132:8088查看YARN管理界面,State为“RUNNING”表示当前YARN中正在执行的Spark任务。
    在这里插入图片描述
    State为“FINISHED”表示当前YARN的Spark任务执行完成,并且FinalStatus为“SUCCEEDED”表示当前Spark任务执行成功。
    执行几秒后刷新页面
    在这里插入图片描述
    在虚拟机Spark01查看Spark任务执行结果。
    在这里插入图片描述
    注意:解决Spark提交任务要YARN异常问题
      为了防止提交Spark任务时,YARN可能将Spark任务Kill掉,导致“Failed to send RPC xxxxxx”异常,可以在Hadoop配置文件yarn-site.xml中添加如下内容
<property>
  <name>yarn.nodemanager.pmem-check-enabled</name>#是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
  <value>false</value>
</property>
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>#是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
  <value>false</value>
</property>

好了,Spark的集群部署和启动与关闭我们就讲到这里了,下一篇我们将讲解HBase集群部署和启动与关闭

转载自:https://blog.csdn.net/u014727709/article/details/130917223
欢迎start,欢迎评论,欢迎指正

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 基于Ubuntu的Spark集群部署与测试需要以下步骤: 1. 安装Java和Scala:Spark需要Java和Scala的支持,因此需要先安装这两个软件包。 2. 下载Spark:从Spark官网下载最新版本的Spark。 3. 安装Spark:将Spark解压到一个目录中,并设置环境变量。 4. 配置Spark集群:在Spark的conf目录下,创建一个名为spark-env.sh的文件,并设置SPARK_MASTER_IP和SPARK_WORKER_CORES等参数。 5. 启动Spark集群:在Spark的sbin目录下,运行start-master.sh和start-slaves.sh脚本,启动Spark集群。 6. 测试Spark集群:使用Spark自带的示例程序,如WordCount,测试Spark集群的性能和可靠性。 7. 部署应用程序:将自己的应用程序打包成jar包,并使用spark-submit命令提交到Spark集群中运行。 以上是基于Ubuntu的Spark集群部署与测试的基本步骤,需要注意的是,Spark集群的配置和调优需要根据具体的应用场景进行调整。 ### 回答2: Spark是一个开源的、快速而通用的集群计算系统,主要用于大数据处理。部署Spark集群需要选择操作系统,目前较为流行的是选择Ubuntu作为操作系统。下面介绍基于Ubuntu的Spark集群部署与测试。 1. 安装Ubuntu操作系统 首先需在每个节点上安装Ubuntu系统。推荐使用Ubuntu Server版本,该版本缺省不安装图形界面和大部分的应用程序,更适合用于服务器操作。 2. 安装Java环境 Spark是基于Java编写的,因此每个节点上都必须安装Java环境。可以选择安装OpenJDK或Oracle JDK。建议选择较新的Java版本,可以提高Spark的性能。 3. 下载SparkSpark官网(http://spark.apache.org/)下载最新版本的Spark并解压。 4. 配置Spark 首先在每个节点上创建一个Spark用户,并为其分配一个唯一的用户ID。接下来,需要在Spark的默认配置文件中配置相关参数,例如Worker数量、内存大小、Hadoop配置等。 5. 部署Spark集群 可以使用多种方式来部署Spark集群,例如手动部署、使用Puppet、Chef等自动化配置工具。手动部署需要在每个节点上逐个安装Spark并手动配置,而自动化配置工具则可以自动在多个节点上安装并配置Spark,省时省力。 6. 测试Spark集群Spark集群部署完成后,可以使用Spark自带的示例程序进行测试。可以先在一个节点上运行示例程序,确保程序能够正常运行。 以上就是基于Ubuntu的Spark集群部署与测试的介绍。没有经验的用户可以尝试使用自动化配置工具来部署Spark集群,使部署过程更加轻松。通过合理的配置,Spark集群可以高效地处理海量数据,为用户提供更为便捷、高效的大数据处理体验。 ### 回答3: Ubuntu是一款开源的操作系统,在大数据领域,Ubuntu常被用作Spark集群部署环境。Spark是一个快速的分布式计算框架,具有高性能和多功能性的设计。在这里,我将为大家介绍基于Ubuntu的Spark集群部署与测试的步骤。 1. 部署Spark Cluster 首先,我们需要在Ubuntu系统上安装Java、Scala和Spark。为了简化部署过程,我们可以使用类似Ansible的自动化工具进行安装和配置。 另一种常用的部署方法是手动安装。我们需要下载相关二进制文件,将它们解压缩到合适的目录,并设置环境变量。这里有一些基本的指令: $ sudo apt-get install default-jre $ sudo apt-get install scala $ wget http://mirror.bit.edu.cn/apache/spark/spark-3.0.0/spark-3.0.0-bin-hadoop2.7.tgz $ tar -xvzf spark-3.0.0-bin-hadoop2.7.tgz $ sudo mv spark-3.0.0-bin-hadoop2.7 /usr/local/spark $ echo "export PATH=$PATH:/usr/local/spark/bin" >> ~/.bashrc $ source ~/.bashrc 2.配置环境变量 在Ubuntu上运行Spark,需要设置以下环境变量: SPARK_HOME:为Spark的安装路径。 JAVA_HOME:为Java的安装路径。 PATH:为Spark二进制文件的可执行路径。 另外,我们需要为每个节点分配IP地址。例如,我们可以在/etc/hosts中添加以下信息: 192.168.1.100 node1 192.168.1.101 node2 192.168.1.102 node3 3.测试Spark Cluster 在Spark集群上进行测试,可以通过启动Spark Shell进行交互式分析。我们可以在Ubuntu命令行中输入: $ spark-shell 这将启动Spark Shell,并显示Spark版本和其他信息。如果成功启动,我们可以使用以下命令测试Spark集群: val arrays = Array(1, 2, 3, 4, 5) val rdd = sc.parallelize(arrays) #创建RDD rdd.collect() #输出RDD中的数据 如果一切正常,Spark Shell将输出包含1、2、3、4、5的表格数据。这说明我们已成功连接到Spark集群并运行RDD分析。 综上所述,基于Ubuntu的Spark集群是一种快速、简单和高效的方式,用于大数据分析和处理。在正确配置环境变量和启动集群后,我们可以通过Spark Shell测试RDD分析,并开始构建自己的大型分布式计算应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想你依然心痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值