《大数据离线分析技术》课件-项目4:Spark环境搭建与运行模式_第1页
《大数据离线分析技术》课件-项目4:Spark环境搭建与运行模式_第2页
《大数据离线分析技术》课件-项目4:Spark环境搭建与运行模式_第3页
《大数据离线分析技术》课件-项目4:Spark环境搭建与运行模式_第4页
《大数据离线分析技术》课件-项目4:Spark环境搭建与运行模式_第5页
已阅读5页,还剩76页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安装Spark安装Spark的步骤验证Spark安装Spark的步骤/01

1、官网下载Spark,/downloads.html,打开次链接,进入到下图,点击红框下载Spark-2.2.0-bin-hadoop2.7.tgz,如下图所示:安装Spark的步骤

2、Spark安装,分为三步:一、准备,包括上传到主节点,解压缩并迁移到/opt/app/目录;二、Spark配置集群,配置/etc/profile、conf/slaves以及confg/spark-env.sh,共3个文件,配置完成需要向集群其他机器节点分发spark程序。三、启动Spark。安装Spark的步骤把spark-2.2.0-bin-hadoop2.7.tgz通过Xftp工具上传到主节点的/opt/uploads目录下。安装Spark的步骤-准备在主节点上解压缩。有时解压出来的文件夹,使用命令ll查看用户和用户组有可能不是hadoop时,即上图绿框显示,则需要使用如下命令更换为hadoop用户和用户组。安装Spark的步骤-准备

sudochownhadoop:hadoopspark-2.2.0-bin-hadoop2.7安装Spark的步骤-准备把spark-2.2.0-bin-hadoop2.7移到/opt/app/目录下。#mvspark-2.2.0-bin-hadoop2.7/opt/app/#cd/opt/app&&ll

安装Spark的步骤-准备配置/etc/profile,以hadoop用户打开配置文件/etc/profile#sudovi/etc/profile定义SPARK_HOME并把spark路径加入到PATH参数中

安装Spark的步骤-Spark配置集群配置conf/slaves,打开配置文件conf/slaves,默认情况下没有slaves,需要使用cp命令复制slaves.template

安装Spark的步骤-Spark配置集群配置conf/spark-env.sh,以hadoop用户,使用如下命令,打开配置文件spark-env.sh,并设置环境变量。

安装Spark的步骤-Spark配置集群向各节点分发Spark程序,进入hadoop1机器/opt/app/目录,使用如下命令把spark文件夹复制到hadoop2和hadoop3机器。

在从节点查看是否复制成功安装Spark的步骤-Spark配置集群启动Spark#cd/opt/app/spark-2.2.0-bin-hadoop2.7/sbin#./start-all.sh安装Spark的步骤-启动Spark验证Spark/02 进入hadoop1节点,进入spark的bin目录,使用spark-shell连接集群。#cd/opt/app/spark-2.2.0-bin-hadoop2.7/bin#spark-shell--masterspark://hadoop1:7077--executor-memory600m验证Spark1.安装Spark的步骤

2.验证Spark

Spark的模块Spark模块模块详解Spark模块/01Spark模块包含:SparkCore、SparkSQL、SparkStreaming、SparkMLlib、集群管理器。Spark模块模块详解/02

一、SparkCore实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。SparkCore中还包含了对弹性分布式数据集(ResilientDistributedDataSet,简称RDD)的API定义模块详解

二、SparkSQL提供SQL处理能力,便于熟悉关系型数据库操作的工程师进行交互查询。此外,还为熟悉Hive开发的用户提供了对HiveSQL的支持。模块详解

三、SparkStreaming提供流式计算处理能力,目前支持ApacheKafka、ApacheFlume、AmazonKinesis和简单的TCP套接字等多种数据源。此外,SparkStreaming还提供窗口操作用于对一定周期内的流数据进行处理。模块详解

四、MLlibSpark提供的机器学习库。MLlib提供了机器学习相关的统计、分类、回归等领域的多种算法实现,具有一致的API接口。模块详解

五、集群管理器Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(ClusterManager)上运行,包括HadoopYARN、ApacheMesos,以及Spark自带的一个简易调度器,叫作独立调度器(Standalone)模块详解1.Spark模块

2.模块详解

Local模式Local模式概述Local模式安装使用Local模式概述/01

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。它可以通过以下几种方式设置Master。1、local:所有计算都运行在一个线程当中,没有任何并行计算,通常在本机执行一些测试代码,或者练手,就用这种模式;2、local[K]:指定使用几个线程来运行计算,比如local[4]就是运行4个Worker线程。通常Cpu有几个Core,就指定几个线程,最大化利用Cpu的计算能力。3、local[*]:这种模式直接按照Cpu最多Cores来设置线程数了Local模式概述Local模式安装使用/02Local模式下的应用程序的启动命令如下:./bin/run-exampleorg.apache.spark.examples.SparkPilocal在SparkPi代码的具体实现中,是根据用户传入的参数来选择运行模式的,如果需要在代码中指定运行模式,可以通过在代码中配置Master为Local来实现,如以下程序所示。Local模式安装使用importorg.apache.spark.{SparkConf,SparkContext}valconf=newSparkConf().setMaster("local").setAppName("Myapplication").set("spark.executor.memory","1g")valsc=newSparkContext(conf)Local模式安装使用

为了使应用程序能够更灵活地在各种部署环境下使用,不建议把与运行环境相关的设置直接在代码中写死。

Local模式安装使用

启动spark-shell

Local模式安装使用1.Local模式概述

2.Local模式安装使用

Standalone模式standalone模式概述运行流程Standalone模式概述/01Standalone模式,是spark自己实现的,是一个资源调度框架。框架的三个节点:1)client2)master3)workerStandalone模式概述

spark应用程序有一个Driver驱动,Driver可以运行在Client上也可以运行在master上。如果使用spark-shell提交job,它是运行在master上的,如果使用spark-submit或者IDEA开发工具方式运行,那么它是运行在Client上的。Client的主体作用就是运行Driver。而master除了资源调度的作用还可以运行Driver。master和worker节点,standalone是一个主从模式,master节点负责资源管理,worker节点负责任务的执行。Standalone模式概述运行流程/02Standalone主要节点之后,它的运行流程,如图:

运行流程1)当spark集群启动以后,worker节点会有一个心跳机制和master保持通信;2)SparkContext连接到master以后会向master申请资源,而master会根据worker心跳来分配worker的资源,并启动worker的executor进程;3)SparkContext将程序代码解析成dag结构,并提交给DagScheduler;

运行流程4)dag会在DagScheduler中分解成很多stage,每个stage包含着多个task;5)stage会被提交给TaskScheduler,而TaskScheduler会将task分配到worker,提交给executor进程,executor进程会创建线程池去执行task,并且向SparkContext报告执行情况,直到task完成;6)所有task完成以后,SparkContext向Master注销并释放资源;

运行流程1.Standalone模式概述

2.运行流程

Standalone运行机制Standalone运行机制概述Standalone架构/01基本介绍

Standalone运行机制概述Standalone运行机制即独立机制,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。

借鉴Spark开发模式,我们可以得到一种开发新型计算框架的一般思路:先设计出它的standalone模式,为了快速开发,起初不需要考虑服务(比如master/slave)的容错性,之后再开发相应的wrapper,将stanlone模式下的服务原封不动的部署到资源管理系统yarn或者mesos上,由资源管理系统负责服务本身的容错。Standalone运行机制概述(一)

目前Spark在standalone模式下是没有任何单点故障问题的,这是借助zookeeper实现的,思想类似于Hbasemaster单点故障解决方案。将Sparkstandalone与MapReduce比较,会发现它们两个在架构上是完全一致的:

都是由master/slaves服务组成的,且起初master均存在单点故障,后来均通过zookeeper解决(ApacheMRv1的JobTracker仍存在单点问题,但CDH版本得到了解决);

Standalone运行机制概述(二)各个节点上的资源被抽象成粗粒度的slot,有多少slot就能同时运行多少task。不同的是,MapReduce将slot分为mapslot和reduceslot,它们分别只能供MapTask和ReduceTask使用,而不能共享,这是MapReduce资源利率低效的原因之一,而Spark则更优化一些,它不区分slot类型,只有一种slot,可以供各种类型的Task使用,这种方式可以提高资源利用率,但是不够灵活,不能为不同类型的Task定制slot资源。总之,这两种方式各有优缺点。

Standalone运行机制概述(三)/02基本介绍

Standalone架构Standalone架构(一)standalone模式下的模块架构Client客户端进程,负责提交作业到MasteClient就是客户端,例如在windows上通过eclipse编写Scala程序向Spark提交作业,那么Client就是eclipseMasterStandalone模式中主节点,负责接收Client提交的作业,管理Worker,并命令Worker启动Driver和Executor。Master在这里就相当于一个公司的包工头,负责接收Client提交上来的作业,然后管理Worker。WorkerStandalone模式中的从节点,负责管理本节点的资源,定期向Master汇报心跳,接受Master的命令,启动Driver和Executor。那么Worker就比较苦逼了,作为一个小打工仔,除了定期要向Master汇报执行情况,还要无条件接受Master各种唧唧歪歪的命令,还得找到一个Driver来帮助自己,找到负责具体执行任务的执行人Executor来执行需要完成的任务。Standalone架构(二)Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析,生成Stage并调度Task到Executor上。包括DAGScheduler(有向无环图调度器),TaskScheduler(任务调度器)。在收到Worker打工仔的命令后开始工作之后将作业转化为RDDGragh,再由DAGScheduler将RDDGragh转化成一个或多个Stage阶段,每个Stage根据RDD的Partition数量决定Task的个数,又形成一个个Taskset,然后给TaskScheduler负责分配给Executor执行者。

1.Standalone运行机制概述2.Standalone架构Yarn模式Yarn模式概述Yarn集群模式Yarn客户端模式Yarn模式概述/01

spark的Yarn运行模式根据Driver在集群中的位置分成两种:1)yarn-client客户端模式2)yarn-cluster集群模式yarn模式和standalone模式不同,standalone模式需要启动spark独立集群,这样SparkContext才能与Master进行交互通信。而yarn模式的资源管理全部托管给的ResourceManager了,所以它不需要启动spark独立集群,那么也就意味着无法访问http://master:8080这个页面。Yarn模式概述Yarn集群模式/02spark的yarn集群模式,Driver运行在ApplicationMaster上,ApplicationMaster进程同时负责驱动代码程序和从ResourceManager申请资源。由于它直接运行在yarn的Container当中,所以并不需要客户端,客户端可以在提交完毕之后就关闭,如图:Yarn集群模式1)客户端将生成作业信息并提交给ResourceManager。2)ResourceManager会选择一个NodeManager去启动container,并且把ApplicationMaster分配给它去运行。3)NodeManager接收到以后就会启动ApplicationMaster并初始化dag作业,此时NodeManager就成为Driver。Yarn集群模式4)ApplicationMaster向ResourceManager申请资源。5)ResourceManager分配资源的同时通知其它NodeManager启动相应的executor去执行task,并反馈执行情况。6)执行完毕,释放资源。Yarn集群模式Yarn客户端模式/03yarn客户端模式和yarn集群模式的区别很明显,就是在于ApplicationMaster仅仅负责从ResourceManager申请资源,而驱动代码程序的任务还是由Client客户端负责,所以Client客户端在整个过程中保持运行不会像集群模式一样提交完就关闭,如图:Yarn客户端模式1)客户端生成作业信息并提交给ResourceManager。2)ResourceManager在本地NodeManager启动container并分配运行ApplicationMaster。3)Client节点会初始化dag作业,通过ApplicationMaster去向ResourceManager申请资源。4)Client节点将任务分发给executor去执行,executor反馈执行情况。5)任务执行完毕,释放资源。Yarn客户端模式1.Yarn模式概述

2.Yarn集群模式

3.Yarn客户端模式

Yarn运行机制Yarn运行机制介绍Yarn运行机制提交/01基本介绍

Yarn运行机制介绍Yarn运行机制介绍/02基本介绍

Yarn运行机制提交Yarn运行机制提交(一)

在YARNClient模式下,Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster。

此时的ApplicationMaster的功能相当于一个ExecutorLaucher,只负责向ResourceManager申请Executor内存。Yarn运行机制提交(二)ResourceManager接到Applicat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论