精华内容
参与话题
问答
  • Spark应用场景有哪些?

    万次阅读 2018-08-20 12:02:50
    Spark 是一种与 Hadoop 相似的开源集群计算环境,是专为大规模数据处理而设计的快速通用的计算引擎,现已形成一个高速发展应用广泛的生态系统,主要应用场景如下:  1. Spark是基于内存的迭代计算框架,适用于需要...

    Spark 是一种与 Hadoop 相似的开源集群计算环境,是专为大规模数据处理而设计的快速通用的计算引擎,现已形成一个高速发展应用广泛的生态系统,主要应用场景如下:

      1. Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小;

      2. 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合:

      3. 数据量不是特别大,但是要求实时统计分析需求。

      满足以上条件的均可采用Spark技术进行处理,在实际应用中,目前大数据在互联网公司主要应用在广告、报表、推荐系统等业务上,在广告业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等。

      这些应用场景的普遍特点是计算量大、效率要求高,Spark恰恰可以满足这些要求,该项目一经推出便受到开源社区的广泛关注和好评,并在近两年内发展成为大数据处理领域炙手可热的开源项目。

      Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,具有运行速度快、易用性好、通用性强以及随处运行等特点,适合大多数批处理工作,并已成为大数据时代企业大数据处理优选技术,其中有代表性企业有腾讯、Yahoo、淘宝以及优酷土豆等。

    展开全文
  • SparkSpark基础教程

    万次阅读 多人点赞 2019-03-20 12:33:42
    Spark最初由美国加州伯克利大学的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。 Spark特点 Spark具有如下几个主要特点: 运行速度快:Spark使用先进...

    Spark最初由美国加州伯克利大学的AMP实验室于2009年开发,是基于内存计算大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。

    Spark特点

    Spark具有如下几个主要特点:

    • 运行速度快:Spark使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍;
    • 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有助于用户轻松构建并行程序,并且可以通过Spark Shell进行交互式编程;
    • 通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件,这些组件可以无缝整合在同一个应用中,足以应对复杂的计算;
    • 运行模式多样:Spark可运行于独立的集群模式中,或者运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源。

    Spark相对于Hadoop的优势

    Hadoop虽然已成为大数据技术的事实标准,但其本身还存在诸多缺陷,最主要的缺陷是其MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用于离线批处理的应用场景。

    回顾Hadoop的工作流程,可以发现Hadoop存在如下一些缺点:

    • 表达能力有限。计算都必须要转化成Map和Reduce两个操作,但这并不适合所有的情况,难以描述复杂的数据处理过程;
    • 磁盘IO开销大。每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入到磁盘中,IO开销较大;
    • 延迟高。一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任务之间的衔接由于涉及到IO开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,难以胜任复杂、多阶段的计算任务。

    Spark主要具有如下优点:

    • Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活
    • Spark提供了内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率;
    • Spark基于DAG的任务调度执行机制,要优于MapReduce的迭代执行机制。

    Spark最大的特点就是将计算数据、中间结果都存储在内存中,大大减少了IO开销

    Spark提供了多种高层次、简洁的API,通常情况下,对于实现相同功能的应用程序,Spark的代码量要比Hadoop少2-5倍。

    Spark并不能完全替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型。实际上,Spark已经很好地融入了Hadoop生态圈,并成为其中的重要一员,它可以借助于YARN实现资源调度管理,借助于HDFS实现分布式存储。

    Spark生态系统

    Spark的生态系统主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX 等组件,各个组件的具体功能如下:

    • Spark Core:Spark Core包含Spark的基本功能,如内存计算、任务调度、部署模式故障恢复、存储管理等。Spark建立在统一的抽象RDD之上,使其可以以基本一致的方式应对不同的大数据处理场景;通常所说的Apache Spark,就是指Spark Core;
    • Spark SQL:Spark SQL允许开发人员直接处理RDD,同时也可查询Hive、HBase等外部数据源。Spark SQL的一个重要特点是其能够统一处理关系表和RDD,使得开发人员可以轻松地使用SQL命令进行查询,并进行更复杂的数据分析;
    • Spark Streaming:Spark Streaming支持高吞吐量、可容错处理的实时流数据处理,其核心思路是将流式计算分解成一系列短小的批处理作业。Spark Streaming支持多种数据输入源,如Kafka、Flume和TCP套接字等;
    • MLlib(机器学习):MLlib提供了常用机器学习算法的实现,包括聚类、分类、回归、协同过滤等,降低了机器学习的门槛,开发人员只要具备一定的理论知识就能进行机器学习的工作;
    • GraphX(图计算):GraphX是Spark中用于图计算的API,可认为是Pregel在Spark上的重写及优化,Graphx性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

    Spark基本概念

    在具体讲解Spark运行架构之前,需要先了解几个重要的概念:

    • RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
    • DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系
    • Executor:是运行在工作节点(Worker Node)上的一个进程负责运行任务,并为应用程序存储数据;
    • 应用:用户编写的Spark应用程序;
    • 任务:运行在Executor上的工作单元
    • 作业:一个作业包含多个RDD及作用于相应RDD上的各种操作
    • 阶段:是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”,或者也被称为“任务集”。

    Spark结构设计

    Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的执行进程(Executor)。其中,集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。

    Spark各种概念之间的关系

    在Spark中,一个应用(Application)由一个任务控制节点(Driver)和若干个作业(Job)构成,一个作业由多个阶段(Stage)构成,一个阶段由多个任务(Task)组成。当执行一个应用时,任务控制节点会向集群管理器(Cluster Manager)申请资源,启动Executor,并向Executor发送应用程序代码和文件,然后在Executor上执行任务,运行结束后,执行结果会返回给任务控制节点,或者写到HDFS或者其他数据库中。
    在这里插入图片描述

    Executor的优点

    与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点:

    1. 利用多线程来执行具体的任务(Hadoop MapReduce采用的是进程模型),减少任务的启动开销;
    2. Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时,就可以直接读该存储模块里的数据,而不需要读写到HDFS等文件系统里,因而有效减少了IO开销;或者在交互式查询场景下,预先将表缓存到该存储系统上,从而可以提高读写IO性能。

    Spark运行基本流程

    Spark的基本运行流程如下:

    1. 当一个Spark应用被提交时,首先需要为这个应用构建起基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,由SparkContext负责和资源管理器(Cluster Manager)的通信以及进行资源的申请、任务的分配和监控等。SparkContext会向资源管理器注册并申请运行Executor的资源;
    2. 资源管理器为Executor分配资源,并启动Executor进程,Executor运行情况将随着“心跳”发送到资源管理器上;
    3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAG调度器(DAGScheduler)进行解析,将DAG图分解成多个“阶段”(每个阶段都是一个任务集),并且计算出各个阶段之间的依赖关系,然后把一个个“任务集”提交给底层的任务调度器(TaskScheduler)进行处理;Executor向SparkContext申请任务,任务调度器将任务分发给Executor运行,同时,SparkContext将应用程序代码发放给Executor;
    4. 任务在Executor上运行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。
      在这里插入图片描述

    Spark运行架构的特点

    Spark运行架构具有以下特点:

    1. 每个应用都有自己专属的Executor进程,并且该进程在应用运行期间一直驻留。Executor进程以多线程的方式运行任务,减少了多进程任务频繁的启动开销,使得任务执行变得非常高效和可靠;
    2. Spark运行过程与资源管理器无关,只要能够获取Executor进程并保持通信即可;
    3. Executor上有一个BlockManager存储模块,类似于键值存储系统(把内存和磁盘共同作为存储设备),在处理迭代计算任务时,不需要把中间结果写入到HDFS等文件系统,而是直接放在这个存储系统上,后续有需要时就可以直接读取;在交互式查询场景下,也可以把表提前缓存到这个存储系统上,提高读写IO性能;
    4. 任务采用了数据本地性和推测执行等优化机制。数据本地性是尽量将计算移到数据所在的节点上进行,即“计算向数据靠拢”,因为移动计算比移动数据所占的网络资源要少得多。而且,Spark采用了延时调度机制,可以在更大的程度上实现执行过程优化。比如,拥有数据的节点当前正被其他的任务占用,那么,在这种情况下是否需要将数据移动到其他的空闲节点呢?答案是不一定。因为,如果经过预测发现当前节点结束当前任务的时间要比移动数据的时间还要少,那么,调度就会等待,直到当前节点可用。

    Spark的部署模式

    Spark支持的三种典型集群部署方式,即standalone、Spark on Mesos和Spark on YARN;然后,介绍在企业中是如何具体部署和应用Spark框架的,在企业实际应用环境中,针对不同的应用场景,可以采用不同的部署应用方式,或者采用Spark完全替代原有的Hadoop架构,或者采用Spark和Hadoop一起部署的方式。

    Spark三种部署方式

    Spark应用程序在集群上部署运行时,可以由不同的组件为其提供资源管理调度服务(资源包括CPU、内存等)。比如,可以使用自带的独立集群管理器(standalone),或者使用YARN,也可以使用Mesos。因此,Spark包括三种不同类型的集群部署方式,包括standalone、Spark on Mesos和Spark on YARN。
    1.standalone模式
    与MapReduce1.0框架类似,Spark框架本身也自带了完整的资源调度管理服务,可以独立部署到一个集群中,而不需要依赖其他系统来为其提供资源管理调度服务。在架构的设计上,Spark与MapReduce1.0完全一致,都是由一个Master和若干个Slave构成,并且以槽(slot)作为资源分配单位。不同的是,Spark中的槽不再像MapReduce1.0那样分为Map 槽和Reduce槽,而是只设计了统一的一种槽提供给各种任务来使用。
    2.Spark on Mesos模式
    Mesos是一种资源调度管理框架,可以为运行在它上面的Spark提供服务。Spark on Mesos模式中,Spark程序所需要的各种资源,都由Mesos负责调度。由于Mesos和Spark存在一定的血缘关系,因此,Spark这个框架在进行设计开发的时候,就充分考虑到了对Mesos的充分支持,因此,相对而言,Spark运行在Mesos上,要比运行在YARN上更加灵活、自然。目前,Spark官方推荐采用这种模式,所以,许多公司在实际应用中也采用该模式。
    3. Spark on YARN模式
    Spark可运行于YARN之上,与Hadoop进行统一部署,即“Spark on YARN”,其架构如图9-13所示,资源管理和调度依赖YARN,分布式存储则依赖HDFS。
    在这里插入图片描述

    Hadoop和Spark的统一部署

    一方面,由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark取代的,比如,Storm可以实现毫秒级响应的流计算,但是,Spark则无法做到毫秒级响应。另一方面,企业中已经有许多现有的应用,都是基于现有的Hadoop组件开发的,完全转移到Spark上需要一定的成本。因此,在许多企业实际应用中,Hadoop和Spark的统一部署是一种比较现实合理的选择。
    由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署(如图9-16所示)。这些不同的计算框架统一运行在YARN中,可以带来如下好处:

    •  计算资源按需伸缩;
    •  不用负载应用混搭,集群利用率高;
    •  共享底层存储,避免数据跨集群迁移。
      在这里插入图片描述
    展开全文
  • Spark应用运行流程

    2018-12-29 13:19:48
    Application:应用,即用户需要完成的应用程序。一般来说,这部分代码需要用户根据自己的需求来完成。这部分代码主要包括两部分:Driver和Executor。 Driver:顾名思义,驱动者,为Application准备运行环境,驱动并...

    相关基本术语

    Application:应用,即用户需要完成的应用程序。一般来说,这部分代码需要用户根据自己的需求来完成。这部分代码主要包括两部分:Driver和Executor。
    Driver:顾名思义,驱动者,为Application准备运行环境,驱动并监控Application的运行。
    Worker:当SparkContext申请到资源后,就会确定此应用程序在Cluster的哪些节点运行。运行Application的这些节点就叫做Worker。在并行计算中一个Application中会有多个Worker同时运行。
    Executor:顾名思义,执行者。其实就是运行在Worker中的一个进程,负责此Worker上的Task的运行以及数据存储(内存或磁盘)。
    Job:作业。多个并行计算的Task的集合,并且包含多个RDD及作用于相应RDD上的各种操作。
    Stage:阶段。每个Job会被拆分成很多组Task。每组Task被称为Stage,所以TaskSet是Stage的表现形式。
    Task:任务。它是在Worker上执行的最小单元。
    在这里插入图片描述

    Spark运行流程

    在这里插入图片描述
    (1)构建Spark Application的运行环境。创建SparkContext后,SparkContext向资源管理器注册并申请资源。这里说的资源管理器有Standalone、Messos、YARN等。事实上,Spark和资源管理器关系不大,主要是能够获取Executor进程,并能保持相互通信。在SparkContext初始化过程中,Spark分别创建作业调度模块DAGScheduler和任务调度模块TaskScheduler(此例为Standalone模式下,在YARN-Client模式下任务调度模块为YarnClientClusterScheduler,在YARN-Cluster模式下为YarnClusterScheduler)。

    (2)资源管理器根据预先设定的算法,在资源池里分配合适的Executor运行资源。在运行过程中,Executor运行情况将随着心跳信息发送到资源管理器上。考虑到Spark Application运行过程中SparkContext和Executor之间有大量信息的交换,提交Spark Context的Client应该靠近Worker节点,以方便信息传输。

    (3)SparkContext构建DAG图(Directed Acyclic Graph,有向无环图),作业调度模块DAGScheduler将DAG图分解成Stage。DAGScheduler决定了运行Task的理想位置,并把这些信息连同Task本身传递给下层的TaskSchduler。

    (4)Executor向SparkContext申请Task,告诉SparkContext,“我已经准备好了,请给我分配任务吧”。

    (5)TaskScheduler维护所有TaskSet,当Driver收到Executor心跳时,TaskScheduler会根据其资源剩余情况分配相应的Task到Executor运行,同时SparkContext将应用程序代码发送给Worker,随后Task便开始在Worker上运行。在此期间,TaskScheduler还维护着所有Task的运行状态,重试失败的Task。如果Task失败是因为Shuffle数据丢失而引起的,则DAGScheduler需要重新提交运行之前的Stage;如果Shuffle数据没有丢失,则交给TaskScheduler处理。

    (6)当Task运行结束后,反馈给SparkContext,并释放资源。

    原文:https://blog.csdn.net/xu__cg/article/details/70037933

    展开全文
  • spark的介绍和pyspark的使用

    万次阅读 多人点赞 2018-03-31 23:42:34
    从这个名字pyspark就可以看出来,它是由python和spark组合使用的.相信你此时已经电脑上已经装载了hadoop,spark,python3.那么我们现在开始对pyspark进行了解一番(当然如果你不想了解直接往下翻找pyspark的使用):1. ...

    从这个名字pyspark就可以看出来,它是由python和spark组合使用的.

    相信你此时已经电脑上已经装载了hadoop,spark,python3.

    那么我们现在开始对pyspark进行了解一番(当然如果你不想了解直接往下翻找pyspark的使用):

    1. 背景:

        产生与加州大学伯克利分校AMP实验室,2013年6月称为Apache成为孵化项目,使用Scala语言进行实现的,而Scala建立在JAVA之上,

        为什么要设计这么一个东西?

        为了改善Hadoop的MAP REDUCE的弱点:

              1. 交互式和迭代式

              2. 在集群多点内存中运行的分布式计算

              3. 容错数据集合

        为什么要用SPARK?

              1. 先进的大数据分布式编程和计算框架

              2. 视图替代Hadoop(Spark可以独立与Hadoop,但是他不能替代Hadoop,因为Hadoop现在依然很重要)

              3. 内存分布式计算:运行数度快

              4. 可以使用不同的语言编程(java,scala,r 和python)

              5. 可以从不同的数据源获取数据

                可以从HDFS,Cassandea,HBase等等

                同时可以支持很多的文件格式:text Seq AVRO Parquet

              6. 实现不同的大数据功能:Spark Core,Sparc SQL等等

    2. 主要部件

        1.spark core :包含spark的主要基本功能,所有和Rdd有关的API都出自于spark core

        2.spark sql :spark中用于结构话处理的软件包,用户可以在soark环境下使用sql语言处理数据

        等等(其他先不介绍)

    3. 介绍一下spark core

        1.它是spark生态圈的核心:

            负责读取数据

            完成分布式计算

        2.包含俩个重要部件

            有向无环图(DAG)的分布式并行计算框架

            容错分布式数据RDD(Resilient Distributed Dataset)

        3.总体来说就是spark功能调度管理中心,用来定义和管理RDD,RDD代表了一系列数据集合分布在基质的内存中,spark core 的任务就是对这些数据进行分布式计算

    4.RDD(重点):

        弹性分布式数据集分布在不同的集群节点的内存中,可以理解为一大数组,数组的每一个元素就是RDD的一个分区,一个RDD可以分布并被运算在多态计算机节点的内存以及硬盘中,

        RDD数据块可以放在磁盘上也可以放在内存中(取决于你的设置),如果出现缓冲失效或丢失,RDD分区可以重新计算刷新,RDD是不能被修改的但是可以通过API被变换生成新的RDD.

        有俩类对RDD的操作(也成算子):

            1.变换(懒执行): 有 map flatMap groupByKey reduceByKey 等

                他们只是将一些指令集而不会马上执行,需要有操作的时候才会真正计算出结果

            2.操作(立即执行): 有 count take collect 等

                他们会返回结果,或者把RDD数据输出

            这些操作实现了MapReduce的基本函数map,reduce及计算模型,还提供了filter,join,groupBYKey等,另外spark sql 可以用来操作有数据结构的RDD即SPARK DATA FRAME

        它的运行原理和mapreduce是一样的,只是他们的运行方式不同,mr的运算是内存磁盘交互读写,不能在内存中共享数据,而RDD可以被共享和持久化.因为大数据运算经常是交互式和迭代式的,所以数据的重用性很重要,而mr的磁盘交互读写带来的I/O开销导致数度减慢



    废话这么多了开始表演了!!


    首先我们需要启动hadoop和spark

    接下来在命令行输入:

    jupyter-notebook --ip 192.168.50.129

    --ip 后面跟的是你此时的ip,这样我们就会得到一个网址:

    接下来我们复制它在浏览器上打开,就会进入jupyter的页面,我们通过点击new,python3来创建一个文件

    首先我们需要导入py4j:

        其实就是在python3里面导入了spark和sc模块


    要注意了:下图红框里面的要对应你spark/python/lib里面的文件

    import os
    import sys
    spark_name = os.environ.get('SPARK_HOME',None)
    if not spark_name:
        raise ValueErrorError('spark环境没有配置好')
    sys.path.insert(0,os.path.join(spark_name,'python'))
    sys.path.insert(0,os.path.join(spark_name,'python/lib/py4j-0.10.4-src.zip'))
    exec(open(os.path.join(spark_name,'python/pyspark/shell.py')).read())

    现在我们就可以使用pyspark了:



        请注意,spark在交互式shell下运行时候,这里的sc即SparkContext 的一个实例已经自动生成了,这是因为pyspark shell本身就是spark应用的driver程序,而driver程序包含应用的main函数定义RDD并在计算机集群上进行各种操作,所以一旦获得SparkContext object 即sc ,driver就可以访问spark了,因此sc可以看成是driver对计算机集群的连接.

        spark里面的core里面的RDD有俩个组织,一个为driver另一个为worker,有点像hadoop里面的namenode和datanode,所以driver只能有一个而worker可以为多个.driver负责获取数据,管理worker,所以worker就负责工作.

     

    有俩种类型的RDD:

           1. 并行集合:来自与分布式化的数据对象,比如我们上面的代码,python里面的list对象,再比如用户自己键入的数据

            并行化RDD就是通过调用sc的parallelize方法,在一个已经存在的数据集合上创建的(一个Seq对象),集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集,比如上面的代码,演示了如何python中的list创建一个并行集合,并进行分行

           2. 文件系统数据集读取数据

            spark可以将任何hadoop所支持的存储资源转换称RDD,如本地文件(语言网络文件系统),索引的节点都必须能访问到,HDFS,mongodb,HBase,等

    下面我们开始使用文件系统集读取数据,首先在hello里面上传一个文件,比如:


    开始写代码:

    lines = sc.textFile("hdfs://python2:9000/hello/data.csv")

    既然我们已经获取了数据那就开始操作:

    1.map()

        他的参数是一个函数(支持lambda函数),函数应用于RDD的每一个元素,函数的参数只能有一个,返回值是一个新的RDD

    2.flatMap()

        参数是一个函数,函数应用为RDD的每一个元素,参数只有1个,将数据进行拆分,变成迭代器,返回值是一个新的RDD  


    如上图,可以进一步的将数据拆分出来,也可以进行添加一些别的操作,比如:


    3.filter()

        参数是一个函数,与python里面的filter一样,函数会过滤掉不符号和条件的元素,返回值是一个新的RDD

    4.reduce()

        并行汇总所有RDD元素,参数是一个函数,函数的参数有2个




    5.countByValue()

        各RDD元素在RDD中出现的次数


    也可以像reduceByKey()变换每一组内汇总


    6.reduceByKey()

        在每一键组内汇总变换,查看每一个数据在文件里面出现的次数


    7.sortByKey()

        未完待续...

    附链接:

        spark RDD的使用



    展开全文
  • 第一个spark应用开发详解(java版)

    万次阅读 2019-02-08 21:53:06
    java版的spark应用开发
  • spark应用场景和基本原理

    千次阅读 2017-08-08 17:35:02
    spark的主要应用场景:(1)推荐系统,实时推荐 (2)交互式实时查询 spark特点:(1)分布式并行计算框架(2)内存计算,不仅数据加载到内存,中间结果也存储内存(中间结果不需要落地到hdfs) 还有一个特点:...
  • Spark应用场景

    千次阅读 2019-01-05 18:55:49
    4、Spark应用场景 目前大数据处理场景主要有以下几种类型: 1、复杂的批处理(Batch Data Processing),偏重点在于处理 海量数据的能力,至于处理 速度可忍受,通常的时间可能是在数十分钟到数小时; 2、基于...
  • spark应用程序的运行架构

    千次阅读 2014-08-13 15:25:26
    spark应用程序运行架构介绍
  • spark应用场景与案例详解

    千次阅读 2018-09-14 13:55:53
    Spark 是一种与 Hadoop 相似的开源集群计算环境,是专为大规模数据处理而设计的快速通用的计算引擎,现已形成一个高速发展应用广泛的生态系统,主要应用场景如下: 1. Spark是基于内存的迭代计算框架,适用于需要多...
  • Spark On Yarn:提交Spark应用程序到Yarn

    千次阅读 2016-06-13 09:44:06
    关键字:Spark On Yarn、Spark Yarn Cluster、Spark Yarn Client Spark On Yarn模式配置非常简单,只需要下载编译好的Spark安装包,在一台带有Hadoop Yarn客户端的机器上解压,简单配置之后即可...要把Spark应用程序
  • IDEA开发Spark应用程序

    千次阅读 2019-06-06 22:18:42
    文章目录创建一个Maven项目,添加依赖词频统计案例开发及上传jar包到服务器并准备测试数据jar包提交Spark应用程序运行词频统计案例迭代之输出结果到HDFS词频统计案例迭代之处理多个输入文件词频统计案例迭代之输入...
  • IDEA开发Spark应用实战(Scala)

    千次阅读 2019-02-17 09:33:59
    实战IDEA开发Scala版的Spark应用
  • 使用Java编写并运行Spark应用程序

    万次阅读 2015-03-02 17:47:44
    我们首先提出这样一个简单的需求: 现在要分析某网站的访问日志信息,统计来自不同IP的用户访问的次数,从而通过Geo信息来获得来访用户所在国家地区分布状况。这里我拿我网站的日志记录行示例,如下所示: ...
  • 使用 Scala 语言开发 Spark 应用程序

    千次阅读 2016-03-06 19:48:28
    本文旨在通过具有实际意义的案例向读者介绍如何使用 Scala 语言开发 Spark 应用程序并在 Spark 集群上运行。本文涉及的所有源数据都将从 HDFS(Hadoop Distributed File System)读取,部分案例的输出结果也会写入...
  • 第8章 Spark应用程打包与提交8.1 应用程序打包(1)Maven打包 进入Maven项目根目录(比如前一章创建的simpleSpark项目,进入simpleSpark项目根目录可以看到1个pom.xml文件),执行mvn package命令进行自动化打包。 ...
  • 使用 IntelliJ IDEA打包Spark应用程序

    千次阅读 2016-11-17 20:27:06
    Spark作为下一代大数据处理引擎,在非常短的时间里崭露头角,并且以燎原之势席卷业界。本篇主要介绍了如何使用IDEA在本地打包Spark应用程序(以K-Means为例),并提交到集群执行。
  • 一:Linux上IntelliJ IDEA安装1:下载IntelliJ IDEA.JetBrains共提供了两个版本:社区版(免费开源)和终极版(专非有免费),下载后将压缩文件移至用户主目录下,在此事例中即master节点的/home/mark/执行下述命令...
  • 打包并提交运行Spark应用程序jar包

    千次阅读 2016-11-22 09:56:56
    基于eclipse的Spark IDE可在 http://scala-ide.org/ 下载。 以WordCount为例: package com.lxw.test import org.apache.spark.{SparkConf, SparkContext}import SparkContext._ object WordCount { def ...
  • 用于提交spark jar Usage: spark-submit [option] <app jar | python file> [app option] Options: --master Master_URL spark://host:port, mesos://host:port,yarn,or local --deploy-mode ...
  • 使用IDEA编写Spark应用程序

    千次阅读 2016-08-15 09:13:11
    spark应用程序的开发可以在本地,也可以在集群模式下。使用IDEA与使用eclipse开发的步骤基本一致,程序内容完全一样,只是对集成开发环境的操作有所不同。 一、安装IDEA集成开发环境 1、...

空空如也

1 2 3 4 5 ... 20
收藏数 91,308
精华内容 36,523
关键字:

spark应用