百当下载:绿色免费软件下载站! 软件分类|软件专题|安卓下载|资讯教程

您当前所在位置:首页 > 软件分类 > 编程开发 > 编程工具 > spark java(jar包) v2.5.5官方版

spark java(jar包)v2.5.5官方版

  • 软件大小:246KB
  • 软件语言:简体中文
  • 软件类型:国外软件
  • 软件授权:免费版
  • 更新时间:2017-03-12 12:20:52
  • 软件类别:编程工具
  • 软件官网:
  • 应用平台:xp/win7/win8/win10
软件星级

软件介绍其它版本相关专题相关文章网友评论下载地址

spark jar包是一个开源的类似于Hadoop MapReduce的通用并行框架,此框架拥有所有Hadoop MapReduce的优点。小编带来的spark jar包则是专门用来开发spark的java应用包有了它用户才能够正常的使用java进行spark应用程序的开发,有需要的不妨下载。

spark jar包是一个开源的类似于Hadoop MapReduce的通用并行框架,spark jar包有许多的有点,Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。

spark java(jar包)

spark jar包优点

高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。

Spark 很快,支持交互式计算和复杂算法。

一、Spark简介

1、什么是Spark

发源于AMPLab实验室的分布式内存计算平台,它克服了MapReduce在迭代式计算和交互式计算方面的不足。

相比于MapReduce,Spark能充分利用内存资源提高计算效率。

2、Spark计算框架

Driver程序启动很多workers,然后workers在(分布式)文件系统中读取数据后转化为RDD(弹性分布式数据集),最后对RDD在内存中进行缓存和计算

3、为什么Spark计算速度快

(1)内存计算

(2)优化执行计划

4、Spark Api语言支持

(1)Scala

(2)Java

(3)Python

5、怎么运行Spark

Local本地模式、Spark独立集群、Mesos、Yarn-Standalone、Yarn-Client

二、编程模型

1、RDD(弹性分布式数据集)是什么

只读的、分块的数据记录集合

可以通过读取来不同存储类型的数据进行创建、或者通过RDD操作生成(map、filter操作等)

使用者只能控制RDD的缓存或者分区方式

RDD的数据可以有多种类型存储方式(可(序列化)存在内存或硬盘中)

2、RDD 存储类型

RDD可以设置不同类型存储方式,只存硬盘、只存内存等。

\

3、RDD操作

Transformation:根据已有RDD创建新的RDD数据集build

Action:在RDD数据集运行计算后,返回一个值或者将结果写入外部存储

\

4、RDD如何创建

首先创建JavaSparkContext对象实例sc

JavaSparkContext sc = new JavaSparkContext("local","SparkTest");

接受2个参数:

第一个参数表示运行方式(local、yarn-client、yarn-standalone等)

第二个参数表示应用名字

直接从集合转化 sc.parallelize(List(1,2,3,4,5,6,7,8,9,10))

从HDFS文件转化 sc.textFile("hdfs://")

从本地文件转化 sc.textFile("file:/")

下面例子中list2就是根据data2List生成的一个RDD

\

根据文件或者集合生成RDD后,接着就可以通过RDD的Transformation操作来完成对数据的各种转化操作

常用的map、flatMap、filter操作都是对单元素的操作

常用的groupByKey、join都是对(key、value)类型元素操作

5、RDD操作例子Java Api

(1)map

map操作对数据集每行数据执行函数里面操作

list1数据集("a,b,c,d,e"),("1,2,3,4,5");

\

执行结果:对list1数据集每行数据用","进行切分

\

(2)flatMap

flatMap相比于map操作,它对每行数据操作后会生成多行数据,而map操作只会生成一行。

\

执行结果:对list1数据集每行数据用","进行切分

\

(3)filter

filter对每行数据执行过滤操作,返回true则保留,返回false则过滤该行数据

\

执行结果:过滤list1数据集中包含‘a’字符的行

\

(4)union

union操作对两个RDD数据进行合并。与SQL中的union一样

list2数据集("11,22,33,44,55"),("aa,bb,cc,dd,ee");

\

执行结果:合并list1与list2数据集

\

(5)groupByKey

groupByKey对pair中的key进行group by操作

pair1RDD数据集("a,1"),("b,2"),("a,3"),("b,4")

\

执行结果:对pair1RDD数据集按key进行group by

\

(6)reduceByKey

reduceByKey对pair中的key先进行group by操作,然后根据函数对聚合数据后的数据操作

\

执行结果:先group by操作后进行concat

\

(7)mapValues

mapValues操作对pair中的value部分执行函数里面的操作

\

执行结果:对pair1RDD中value部分加上test字符串

\

(8)join

join与sql中join含义一致,将两个RDD中key一致的进行join连接操作

pair2RDD数据集("a,11"),("b,22"),("a,13"),("c,4")

\

执行结果:对pair1RDD与pair2RDD按key进行join

\

(9)cogroup

cogroup对两个RDD数据集按key进行group by,并对每个RDD的value进行单独group by

\

执行结果:对pair1RDD与pair2RDD按key进行cogroup

\

6、RDD数据如何输出

使用RDD的Transformation对数据操作后,需要再使用Action操作才能将结果数据输出

可以分别使用count、collect、save等操作来输出或统计RDD结果

7、RDD Action实例

\

执行结果:

count:统计输出数据行数

\

collect:输出所有输出数据

\

save:保存输出数据至外部存储

\

7、WordCount实例

\

执行结果:

\

8、广播变量& 累加器

Broadcast variables(广播变量)

广播变量,类似于hadoop中的distribute cache,将同一份数据分发至每台机器。

Accumulators(累加器)

类似于MapReduce中的counter,用于计数

三、调度机制

1、DAG Scheduler

为每个job分割stage,同时会决定最佳路径,并且DAG Scheduler会记录哪个RDD或者stage的数据被checkpoint,从而找到最优调度方案    (transformations是延迟执行的原因)

\

2、DAG Scheduler优化

单个Stage内Pipeline执行

基于分区选择合适的join算法最小化shuffle

重用已经cache过的数据

3、窄依赖& 宽依赖

窄依赖:每个子分区只依赖有限数目的父分区

宽依赖:每个子分区只依赖所有的父分区

\

4、Stage

调度器会在产生宽依赖的地方形成一个stage,同一个stage内的RDD操作会流式执行,不会发生数据迁移。

\

rdd join操作属于宽依赖,从spark产生的日志可以看出需要分3个stage执行

\

rdd flatMap、Map操作属于窄依赖,从spark产生的日志可以看出需要分1个stage执行

\

5、Shuffle

每个RDD都可以选择Partitioner进行shuffle操作

任何在两个RDD上的shuffle操作,将选择其中一个RDD的Partitioner作为标准。如果两个RDD都没有设置Partitioner的话,就使用默认的HashPartitioner

shuffle需要在node之间移动数据,会影响spark执行效率,应该尽量避免RDD操作中发生shuffle。

\

spark jar包性能特点

更快的速度

内存计算下,Spark 比 Hadoop 快100倍。

易用性

Spark 提供了80多个高级运算符。

通用性

Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。 开发者可以在同一个应用程序中无缝组合使用这些库。

支持多种资源管理器

Spark 支持 Hadoop YARN,Apache Mesos,及其自带的独立集群管理器

Spark生态系统

Shark:Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替HadoopMapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。

SparkR:SparkR是一个为R提供了轻量级的Spark前端的R包。 SparkR提供了一个分布式的data frame数据结构,解决了 R中的data frame只能在单机中使用的瓶颈,它和R中的data frame 一样支持许多操作,比如select,filter,aggregate等等。(类似dplyr包中的功能)这很好的解决了R的大数据级瓶颈问题。 SparkR也支持分布式的机器学习算法,比如使用MLib机器学习库。SparkR为Spark引入了R语言社区的活力,吸引了大量的数据科学家开始在Spark平台上直接开始数据分析之旅。

其他版本下载

相关文章

下载地址

  • spark java(jar包)v2.5.5官方版

网友评论