`
wx1568908808
  • 浏览: 31305 次
文章分类
社区版块
存档分类
最新评论

请您先登录,才能继续操作

Spark概要

 
阅读更多

1. 在较高层次上,每个spark应用程序包含一个驱动程序,去调用用户的main函数,在集群上执行各种并行操作。spark主要的抽象,是提供了RDD数据类型。RDD数据类型是一组分割在集群上可以被并行操作的元素集合。RDD可以通过HDFS上的文件,驱动程序已有的集合,或对已有的RDD进行变换来创建。用户也可以将RDD持久化,保存在内存中,以被有效的重用。RDD也将自动从失败中恢复。spark的第二个抽象是可以被并行操作的共享变量。默认情况下,spark运行函数时,将在不同的节点上启动独立的任务。spark支持2类共享变量,广播变量,在每一个节点上保存一个值,累积变量支持累加操作。

2. spark初始化

spark应用程序首先应该创建JavaSparkContext对象

SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
JavaSparkContext sc = new JavaSparkContext(conf);

appname设置显示在集群UI上应用程序名,master是YARN集群的URL,或者字符串"local"表示运行本地模式。若采用spark-submit命令提交jar包,可由--master选项指定。

3. 创建RDD

RDD可以通过parallelizing一个驱动程序中已存在的集合,或者引用一个外部存储系统,如HDFS,HBase创建

List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
JavaRDD<Integer> distData = sc.parallelize(data, 20);

集合并行化的一个重要参数就是份数(slices),每一份数据将对应一个任务,spark默认会根据集群自动确定份数。

JavaRDD<String> distFile = sc.textFile("data.txt", 20);

如果文件名是本地文件系统,那么需要在所有工作节点的相同目录下拷贝一份数据,或者采用网络共享文件系统。所有的spark文件输入方法也支持目录,压缩文件,通配符。默认情况下一个分块(block)将对应一份(slice)。除了文本文件,spark还支持其它数据格式,如:JavaSparkContext.wholeTextFiles,SequenceFiles。

4. RDD操作支持两种,变换(transformation)根据已经存在的数据集产生一个新的数据集,动作(action)在RDD上运行计算并向驱动程序返回一个值。例如:map就是一个transformation,将所有的数据元素通过一个函数,结果返回一个新的RDD,reduce就是一个action,采用某个函数聚合所有元素,向驱动程序返回一个结果。所有的transformation操作在调用后,并不会立即执行,只有当某个action需要向驱动程序返回一个结果时,才执行。这样设计使得spark效率更高,例如在需要将一个RDD通过一个map,然后再使用reduce返回一个结果,这时就只需要向驱动程序返回reduce的结果,而不是更大的map后的数据集。默认RDD是不会一直存在于内存当中的,我们可以调用persist或cache方法持久化,也支持将RDD持久化入硬盘,或者备份到多个节点。

5. RDD transformation方法

map(T -> U)  filter(T -> Boolean)  flatMap(T -> Iterator<U>)  mapPartitions(Iterator<T> -> Iterator<U>)

mapPartitionsWithIndex((int,Iterator<T>) -> Iterator<U>)  ...

转载于:https://my.oschina.net/jhone/blog/312373

分享到:
评论

相关推荐

    spark-3.2.2-bin-3.0.0-cdh6.3.2

    内容概要:由于cdh6.3.2的spark版本为2.4.0,并且spark-sql被阉割,现基于cdh6.3.2,scala2.12.0,java1.8,maven3.6.3,,对spark-3.2.2源码进行编译 应用:该资源可用于cdh6.3.2集群配置spark客户端,用于spark-sql

    Spark2.0新特性

    - **近似概要统计**: 包括近似分位数、布隆过滤器、最小略图等,提高了数据处理的效率。 **1.1.4 性能提升** - **Whole-Stage Code Generation**: 通过这种新技术,显著提升了Spark SQL和Dataset API的性能,达到...

    大数据技术知识点概要

    大数据技术知识点概要涵盖了大数据的产生背景、特征、价值意义、分布式文件系统HDFS、MapReduce模型、分布式数据库HBase、Spark核心编程以及流计算框架Storm等关键技术的详细介绍。下面将依据各章节内容展开详细讲解...

    spark从入门到实战

    #### 一、大数据分析框架概要与Spark课程学习计划 在大数据时代,高效处理海量数据成为企业和组织的核心需求之一。Spark作为当前最受欢迎的大数据分析框架之一,以其高性能、易用性等特点受到广泛青睐。本章节将...

    数据算法 Hadoop Spark大数据处理技巧

    这还概要介绍了MapReduce、Hadoop和Spark。 主要内容包括: ■ 完成超大量交易的购物篮分析。 ■ 数据挖掘算法(K-均值、KNN和朴素贝叶斯)。 ■ 使用超大基因组数据完成DNA和RNA测序。 ■ 朴素贝叶斯定理和...

    电商大数据系统实现概要设计.doc

    《电商大数据系统实现概要设计》 一、引言 电商大数据系统是现代商业环境中的重要组成部分,旨在处理海量的在线交易数据,提供决策支持、市场分析和个性化服务。本文档旨在为电商大数据系统的实现提供一份详尽的...

    Spark 3.1.1(可供免费下载学习)

    内容概要:Apache Spark 3.1.1-bin-hadoop3.2 包括以下内容:1. Spark Core:这是 Spark 的核心组件,提供了分布式计算的基本功能,包括任务调度、内存管理、通信等。2. Spark SQL:它提供了一个用于结构化数据处理...

    数据算法 Hadoop Spark大数据处理技巧 中文PDF

    《数据算法:Hadoop/Spark大数据处理技巧》介绍了很多基本设计模式、优化技术和数据挖掘及机器学习解决方案,以解决生物信息学、基因组学、统计和社交网络分析等领域的很多...这还概要介绍了MapReduce、Hadoop和Spark。

    HadoopSpark大数据处理技巧[中文版][高清]

    《数据算法:Hadoop/Spark大数据处理技巧》介绍了很多基本设计模式、优化技术和数据挖掘及机器学习解决方案,以解决生物信息学、基因组学、统计和社交网络分析等领域的很多...这还概要介绍了MapReduce、Hadoop和Spark。

    大数据面试必备-Spark、Hive、HDFS、YARN和Kafka面试知识点总结

    内容概要:本文汇总了关于 Spark、Hive、HDFS、YARN 和 Kafka 的大量面试题及其答案。涉及的知识点包括但不限于 Spark 优化与任务管理,RDD 特性,Spark 缓存与 Checkpoint 差异,数据倾斜解决方案,Spark SQL 内部...

    数据算法 Hadoop Spark大数据处理技巧.pdf

    这还概要介绍了MapReduce、Hadoop和Spark。, 主要内容包括:, ■ 完成超大量交易的购物篮分析。, ■ 数据挖掘算法(K-均值、KNN和朴素贝叶斯)。, ■ 使用超大基因组数据完成DNA和RNA测序。, ■ 朴素贝叶斯定理和...

    大数据处理优化:Spark与Hadoop的深度应用与性能调优

    内容概要:本文详细介绍了 Spark 和 Hadoop 在大数据处理中的深度应用与优化策略,涵盖两者的定位、核心概念、应用场景及其优劣对比。重点讲解了 Spark 的 RDD 和 DataFrame,以及 Hadoop 的 HDFS 和 MapReduce,并...

    基于Spark的大数据分析商品推荐系统设计与实现

    内容概要:本文设计并实现了一个基于Spark的大数据分析商品推荐系统。系统利用Spark的分布式计算能力,对海量用户行为数据进行处理和分析,采用协同过滤和基于内容的推荐算法相结合的混合推荐策略,提供个性化的商品...

    Spark气象监测数据分析:代码整合,包括预处理,分析,数据可视化

    【内容概要】 通过完整的气象监测数据处理与分析项目,了解Spark大数据分析的整体流程。代码涵盖数据工程、统计分析、机器学习预测建模等内容。可以学习如何使用Spark PySpark API处理大规模数据。 【适合人群】 具备...

    大数据+spark+mongodb+nodejs+express+redis+scala实现实和离线房屋系统开发

    内容概要,一个基于逻辑为使用node做为后端端口,使用kafka主题作为流接口,利用前端发送的数据来到kafak主题然后进行spark分析形成推荐列表进行实时推荐,并且使用历史数据实现历史推荐,使用了redis作为缓存数据库...

    基于Spark2.x框架的新闻网大数据实时分析可视化系统.zip

    内容概要 本项目是一个基于Spark2.x框架的大数据实时分析系统,专注于新闻网站的用户浏览日志分析与可视化。系统通过捕获用户浏览日志,实时分析流量最高的新闻话题,统计当前线上已曝光的新闻话题,并识别用户浏览...

    基于Spark的大数据实时评论监控预警系统设计与实现

    内容概要:本文介绍了基于Spark的大数据实时评论监控预警系统的开题报告。该系统通过使用网络爬虫技术收集评论数据,利用Spark Streaming进行实时分析,实现对评论数据的情感分析和分类,并设置阈值进行实时监控和...

Global site tag (gtag.js) - Google Analytics