spark系列博客-(1)初识spark

说明:本文是我从spark官方文档上翻译总结+个人理解的,如有不恰当和理解偏差的地方,请大家指出,一起交流学习!

翻译来源 http://spark.apache.org/docs/latest/programming-guide.html

1.每个spark应用均包含一个drive program作为当前应用的入口,每个spark应用的核心抽象就是RDDresilient distributed dataset,用于并行操作集群上的节点的被划分的元素集合)。

2.RDD被创建的两种方式

(1)由drive program内部存在的集合创建

(2)由外部文件系统创建(如:hdfs上的file

3.Spark中的共享变量

说明:Spark中的共享变量常用于并行操作中,在应用中,一个变量需要在一个任务中或任务与drive program之间被共享。

Spark中提供了两种类型的共享变量

(1)broadcast variables(在集群的所有节点上缓存到内存中的值)

(2)accumulators(计数操作,如:counterssums

4.spark应用程序中的核心对象SparkContext

SparkContextspark应用程序的上下文环境,用于告诉应用如何去访问集群,如何对集群中的节点进行操作。

创建方法:new SparkContext(new SparkConf().setAppName(appName).setMaster(master))

说明:appName参数是用于显示在webUI上的当前spark应用的名字,master是部署运行当前应用程序的节点url。在创建一个新的SparkContext对象之前一定要将当前active状态的SparkContext对象stop()

5.Spark-shell

Spark-shellspark包内置的一个交互式shell,当在spark安装目录下执行./spark-shell命令后,SparkContext对象自动创建(创建后对象的引用为sc),即可直接使用。

6.RDD操作

RDD支持两种类型的操作

(1)transformations:转换操作,用于创建新的数据集。如:mapfilter操作

(2)actions:响应操作,计算数据集后向drive program返回值。如:reducecollect操作

说明:

(1)spark中所有的转换transformations操作均为lazy的(当采取transformations操作时不会立即计算,只是仅仅记住自己需要做的事情,除非当一个action操作发生时。这样的设计对于应用的运行效率会有相当大的提升)

(2)Spark默认的是:当在同一个RDD执行action操作时,每次被transformationsRDD可能会被重计算,因此,为了提升效率,spark中提供了缓存机制(利用cache方法,如:rdd.cache)。

### 回答1: Spark是一个开源的分布式计算框架,可以用于大规模数据处理。Spark的核心是Spark Core,它提供了分布式任务调度、内存计算和数据管理等功能。Spark支持多种编程语言,包括Java、Scala和Python等。Spark的离线计算能力非常强大,可以处理大规模的数据集,支持复杂的数据处理和分析任务。初学者可以通过学习Spark的基本概念和API,逐步掌握Spark的使用方法。 ### 回答2: Spark是一种开源的、面向大数据处理的计算引擎,可以在分布式集群上进行高效的离线计算和实时流处理。Spark的主要特点是速度快、易于使用、灵活性高,并且支持多种编程语言和多种数据源。 Spark的分布式计算是基于RDD(Resilient Distributed Dataset)的计算模型实现的。RDD是一种抽象的数据集合,像一个分布式的、可容错的内存数据结构,提供了数据的高度并行性和容错性。Spark的计算模型是基于RDD进行的,可以将数据集和计算操作分布式存储和处理,从而实现高性能的计算。 Spark的核心组件是Spark Core,它提供了RDD的编程接口和执行引擎。Spark Core是整个Spark体系中最基础的模块,包括了RDD的构建、转换和动作等一系列基本操作,同时也提供了类似于MapReduce的分布式计算框架。 在离线计算中,Spark Core可以支持各种类型的数据,包括结构化数据、半结构化数据和非结构化数据。离线计算是指对离线数据进行批量处理,通常是通过Spark Core提供的Transformations和Actions函数处理RDD,完成一些统计、聚合、筛选等操作,最终输出结果数据。 初识Spark是从安装Spark开始入手,需要准备好Java或Scala的开发环境,并下载安装Spark的相关包。安装完成后,可以通过Spark Shell或者Spark的代码进行操作,从而熟悉SparkRDD编程模型和离线计算的常用函数,最终可以完成对数据的处理和分析。 总之,初识Spark需要从Spark的分布式计算模型开始入手,了解Spark的基础组件Spark Core和RDD,掌握离线计算的基本函数和操作方法,从而熟悉Spark的使用和应用。 ### 回答3: Spark是由加州大学伯克利分校AMPLab所开发的一个分布式计算框架。Spark被设计成一种通用的、高性能的计算引擎,能够用于大规模数据处理,包括离线处理和实时流处理。Spark具有高容错性和支持多个数据源。Spark中的一些主要组件包括Spark SQL、Spark Streaming、MLlib、GraphX等。 Spark在离线计算中的主要作用是加速批处理任务的处理速度。Spark中的主要组件包括Spark Core和Spark SQL。其中,Spark Core是Spark的基础组件,是一个任务调度和分发引擎,提供了任务调度、内存管理、错误恢复等功能。Spark SQL是Spark提供的一个基于SQL的查询接口,可以与Spark Core进行集成,方便数据分析师使用。 初识Spark,需要掌握Spark的编程语言和运行环境。Spark支持多种编程语言,包括Scala、Java、Python和R。对于初学者来说,建议使用Scala作为开发语言,因为Spark是Scala语言编写的,同时Scala对Spark的支持也最全面。此外,还需要掌握Spark的运行环境,包括Spark集群的搭建、数据导入和输出、任务调度等内容。 在Spark的学习过程中,需要掌握的关键技术包括数据类型、RDD编程模型、操作和算子、持久化和容错、调度器和任务划分等。需要注意的是,Spark的编程模型和Hadoop相似,但是Spark提供了更高级别的API和更便捷的操作方式,能够提高任务处理的效率。 总之,初识Spark需要从它的基础组件和编程语言入手,从实际案例中发现它在离线计算的应用场景中的优点,同时也需要掌握Spark在处理大规模数据时的关键技术,从而能够深入理解Spark的运行机制,提高离线数据分析处理的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值