01-spark简介、spark部署方式、spark运行方式

1、定义

  Spark是由Scala编写的一个实时计算系统。

  Spark的API包括Java、Python、R、Scala.

2、功能

  Spark Core:

        ①将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API。

        ②是Spark核心编程,类似Hadoop中的MR编程框架,但比MR拥有更丰富的算子,且几乎所有对数据的处理都放置在内存中,所以比MR更高效。

  Spark SQL: 类似Hive,但是Spark的SQL可以和SparkCore无缝集合,使用起来非常方便。对应的,MR和Hive并不能无缝集合。

  Spark Streaming: 类似Storm,用来进行流式处理。

  Spark MLlib: 用于机器学习,

  Graphx: 用于图计算。

3、部署方式

  ①YARN : 采用Yarn模式的话,其实就是把spark作为一个客户端提交作业给YARN,实际运行程序的是YARN。所以安装部署只需要在其中一台机器上安装spark就行。

  ②standalone: 使用spark内置的资源管理与调度器。

  注:还有其他的部署方式,比如Apache Mesos等。但是最常见的Spark on Yarn

4、Spark运行方式

    Spark程序,无论是Spark core、Spark Sql、Spark Streaming,都可以通过以下两种形式运行:

        ①Spark-shell 

            类似于scala的控制台,spark会自动帮我们做以下几件事情:

            1.会在启动spark-shell的机器的4040端口上绑定spark的web监控页面
            2.将SparkContext类的对象命名为sc
            3.将SparkSession类的对象命名为spark

            类型:
                ①spark-shell on StandaLone                    //可以使用shell连接内置的资源管理(standalone),进行任务提交,这里不研究
                ②spark-shell on YARN                    //可以使用shell连接yarn,进行任务提交。分为客户端、集群模式

                    1、spark on YARN 之 cluster 集群模式

                        我们提交的spark应用程序对于YARN来说,也只不过是一个分布式应用程序而已,
                        在YARN看来,一个MR程序和一个spark程序是没有区别的。所以spark程序提交后,
                        同样要跟YARN申请一个Continer来启动当前spark程序的Application Master,
                        YARN会选择一个空闲的Datanode启动AM,其实这种情况下,Spark的Driver程序运行在AM内。

                        提交程序之后,客户端连接可以断开。

                    2、spark on YARN 之 client 客户端模式

                        同样会跟YARN申请Continer用以执行AM程序,但是这个AM的作用就只有向YARN申请资源这么一个功能了。
                        在这种情况下,Spark的Driver程序在提交程序的客户端执行,也就是说Driver程序没有在AM内运行。
                        这个时候我们可以利用spark-shell进行交互,连接不能断开,也就不能多用户操作

                注:在实际开发中我们都使用cluster模式。

            eg: sc.textFile("/spark/all").flatMap(line => line.split(" ")). map(word => (word, 1)).reduceByKey(_ + _). saveAsTextFile("/spark/wcall")

                    //在spark-shell中输入上述wordcount语句就行,因为自动构建了SparkContext对象

        ②spark-submit

            将程序打包成jar包,进行运行。
            自己创建SparkContext类的对象,自己确定什么时候程序终止退出等相关所有操作。

            命令:spark-submit --master yarn --deploy-mode cluster  bigdata-spark-test.jar

原文地址:https://www.cnblogs.com/lihaozong2013/p/10582593.html

时间: 2024-11-05 19:26:53

01-spark简介、spark部署方式、spark运行方式的相关文章

Spark源码分析:多种部署方式之间的区别与联系(1)

从官方的文档我们可以知道,Spark的部署方式有很多种:local.Standalone.Mesos.YARN.....不同部署方式的后台处理进程是不一样的,但是如果我们从代码的角度来看,其实流程都差不多. 从代码中,我们可以得知其实Spark的部署方式其实比官方文档中介绍的还要多,这里我来列举一下: 1.local:这种方式是在本地启动一个线程来运行作业: 2.local[N]:也是本地模式,但是启动了N个线程: 3.local[*]:还是本地模式,但是用了系统中所有的核: 4.local[N

Apache Spark探秘:三种分布式部署方式比较

目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配).本文将介绍这三种部署方式,并比

Apache Spark源码走读之7 -- Standalone部署方式分析

欢迎转载,转载请注明出处,徽沪一郎. 楔子 在Spark源码走读系列之2中曾经提到Spark能以Standalone的方式来运行cluster,但没有对Application的提交与具体运行流程做详细的分析,本文就这些问题做一个比较详细的分析,并且对在standalone模式下如何实现HA进行讲解. 没有HA的Standalone运行模式 先从比较简单的说起,所谓的没有ha是指master节点没有ha. 组成cluster的两大元素即Master和Worker.slave worker可以有1到

spark的部署方式

一直以为spark区分几种集群的模式是由配置更改而改变. 经过使用发现,区分这几种模式的在于启动命令时指定的master. 现在保持我的配置文件不变. #公共配置 export SCALA_HOME=/usr/local/scala/ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/ export SPARK_LOCAL_DIRS=/usr/local/spark-1.5.1/ export SPARK_CONF_

Spark 应用程序部署工具spark-submit

1. 简介 Spark的bin目录中的spark-submit脚本用于启动集群上的应用程序. 可以通过统一的接口使用Spark所有支持的集群管理器,因此不必为每个集群管理器专门配置你的应用程序(It can use all of Spark's supported cluster managers through a uniform interface so you don't have to configure your application specially for each one).

Spark入门实战系列--1.Spark及其生态圈简介

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL.Spark St

Spark编译与部署

Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建 [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建.Hadoop编译安装和Spark编译安装,该环境作为后续实验基础: 3.文章演示了Hadoop.Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以直接使用这些

Spark 集群部署

本文将接受 Spark 集群的部署方式,包括无 HA.Spark Standalone HA 和 基于 ZooKeeper 的 HA 三种. 环境:CentOS6.6 . JDK1.7.0_80 . 关闭防火墙 . 配置好 hosts 和 SSH 免密码.Spark1.5.0 一. 无 HA 方式 1. 主机名与角色的对应关系: node1.zhch    Master node2.zhch    Slave node3.zhch    Slave 2. 解压 Spark 部署包(可以从官网直接

Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”. l“机器学习是对能通过经验自动改进的计算机算法的研究”. l“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准.” 一种经常引用的英文定义是:A computer program is said