(一)spark是什么?

news/2024/12/22 0:17:39/

1.spark是什么?

spark是一个用来实现快速,通用的集群计算平台
spark适用于各种各样原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。通过在一个统一的框架下支持这些不同的计算,spark使我们可以简单而低耗地把各种处理流程整合在一起。

在这里插入图片描述

2.spark的用途

(1):数据科学任务

具备 SQL、统计、预测建模(机器学习)等方面的经验,以及一定的python,matlab,R语言能力的数据科学家对数据进行分析,以回答问题或发现一些潜在规律。

(2):数据处理任务

Spark 的另一个主要用例是针对工程师的。在这里,我们把工程师定义为使用 Spark 开发
生产环境中的数据处理应用的软件开发者。这些开发者一般有基本的软件工程概念,比如
封装、接口设计以及面向对象的编程思想,他们通常有计算机专业的背景,并且能使用工
程技术来设计和搭建软件系统,以实现业务用例。

  1. Spark 为开发用于集群并行执行的程序提供了一条捷径。通过封装,Spark不需要开发者关注如何在分布式系统上编程这样的复杂问题,也无需过多关注网络通信和 程序容错性。
  2. Spark已经为工程师提供了足够的接口来快速实现常见的任务,以及对应用 进行监视、审查和性能调优。其

3.spark简史

Spark 是由一个强大而活跃的开源社区开发和维护的,社区中的开发者们来自许许多多不 同的机构。如果你或者你所在的机构是第一次尝试使用
Spark,也许你会对 Spark 这个项 目的历史感兴趣。Spark 是于 2009 年作为一个研究项目在加州大学伯克利分校 RAD 实验
室(AMPLab 的前身)诞生。实验室中的一些研究人员曾经用过 Hadoop MapReduce。他 们发现 MapReduce
在迭代计算和交互计算的任务上表现得效率低下。因此,Spark 从一开
始就是为交互式查询和迭代算法设计的,同时还支持内存式存储和高效的容错机制。 2009 年,关于 Spark 的研究论文在学术会议上发表,同年
Spark 项目正式诞生。其后不久, 相比于 MapReduce,Spark 在某些任务上已经获得了 10 ~ 20 倍的性能提升。
2011 年,AMPLab 开始基于 Spark 开发更高层的组件,比如 Shark(Spark 上的 Hive)1 和 Spark
Streaming。这些组件和其他一些组件一起被称为伯克利数据分析工具栈(BDAS,
https://amplab.cs.berkeley.edu/software/)。 Spark 最早在 2010 年 3 月开源,并且在
2013 年 6 月交给了 Apache 基金会,现在已经成了 Apache 开源基金会的顶级项目。

4.spark的存储层次

Spark 不仅可以将任何 Hadoop 分布式文件系统(HDFS)上的文件读取为分布式数据集,
也可以支持其他支持 Hadoop 接口的系统,比如本地文件、亚马逊 S3、Cassandra、Hive、
HBase 等。我们需要弄清楚的是,Hadoop 并非 Spark 的必要条件,Spark 支持任何实现
了 Hadoop 接口的存储系统。Spark 支持的 Hadoop 输入格式包括文本文件、SequenceFile、
Avro、Parquet 等

5.spark核心概念简介

每个 Spark 应用都由一个**驱动器程序(driver program)**来发起集群上的各种并行操作。驱动器程序包含应用的 main 函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。驱动器程序通过一个 SparkContext 对象来访问 Spark。这个对象代表对计算集群的一个连接。shell 启动时已经自动创建了一个 SparkContext 对象,是一个叫作 sc 的变量。我们可以通过例 2-3 中的方法尝试输出 sc 来查看它的类型。

>>> sc
<pyspark.context.SparkContext object at 0x1025b8f90>

一旦有了 SparkContext,你就可以用它来创建 RDD。
要执行这些操作,驱动器程序一般要管理多个执行器(executor)节点。
在这里插入图片描述
除了交互式运行之外,Spark 也可以在 Java、Scala 或 Python 的独立程序中被连接使用。这与在 shell 中使用的主要区别在于你需要自行初始化 SparkContext。

  1. 连接spark的过程在各种语言中不同,在java中,只需要添加一个对于spark-core的Maven依赖:
        <dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.0.0</version></dependency>
  1. 初始化SparkContext
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("My App");
//集群 URL:告诉 Spark 如何连接到集群上。
// local这个特殊值可以让 Spark 运行在单机单线程上而无需连接到集群。
//应用名:My App 集群管理器的用户界面中
JavaSparkContext sc = new JavaSparkContext(conf);

参考文献:

  1. 《Spark快速大数据分析》

http://www.ppmy.cn/news/301000.html

相关文章

SharpMap简析

1.背景 因为项目需求&#xff0c;需要基于开源项目来对SHP进行相关操作。涉及到的主要功能就是加载SHP读取其中的属性信息和几何信息。于是选择了Sharpmap来进行&#xff0c;在使用中对其相关功能做了初步了解&#xff0c;做个总结。 2.SharpMap 简介 官网地址&#xff1a;http…

IBM HeapAnalyzer简介使用

IBMHeapAnalyzer 创建者&#xff1a;Jinwoo Hwang&#xff08;JinwooHwang.com&#xff09; 欢迎来到IBM HeapAnalyzer。IBM HeapAnalyzer允许您使用其获得专利的启发式搜索引擎查找可能的Java™堆泄漏&#xff0c;并分析Java堆转储。 介绍 Heapdump包含堆中所有对象的列表。此…

一文让你理解什么是shallow heap及retained heap

前言 快速定位性能故障并非一朝一夕之功&#xff0c;需要我们对很多概念有很深刻的理解&#xff0c;在前文中&#xff0c;我们介绍了heap dump的相关概念和其获取方式&#xff0c;今天我们一起来了解一下什么是&#xff1a; Shallow 和 retained sizes。 GC ROOT是什么&#…

Spark是什么?

Spark是个通用的集群计算框架&#xff0c;通过将大量数据集计算任务分配到多台计算机上&#xff0c;提供高效内存计算。如果你熟悉Hadoop&#xff0c; 那么你知道分布式计算框架要解决两个问题&#xff1a;如何分发数据和如何分发计算。Hadoop使用HDFS来解决分布式数据问题&…

【Spark】Spark是什么?能干什么?有什么特点?

一、什么是Spark 官网&#xff1a;http://spark.apache.org Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters. Spark是一种快速、通用、可扩展的大数据分析引擎&#xf…

SharpPcap 开发笔记

原文地址&#xff1a; http://blog.chinaunix.net/u/884/showart_2281574.html 由于项目的需要&#xff0c;要从终端与服务器的通讯数据中获取终端硬件状态&#xff0c;所以用到了广为流传的C#抓包库SharpPcap。 SharpPcap目前最新版本是3.1.0&#xff0c;基于.Net 3.5和WinPc…

Pulsar 各个Shedder分析及新的Shedder -- AvgShedder

看到今年Pulsar 峰会上挺多人分享负载均衡的内容&#xff0c;这里也整理分享一下相关的内容。 社区现有策略的分析 LoadSheddingStrategy pulsar进行shedding的时候&#xff0c;使用的是ThresholdShedder类&#xff0c;ThresholdShedder类是LoadSheddingStrategy接口的其中一…

基于 shapley-value 的可解释方法及 shap 库实现

一. 为什么需要可解释 几点考虑: 若模型完全黑箱, 会有信任风险, 虽然 Performance 不错, 但在医学诊断等严肃领域, 同样要关心诊断依据.人类天生的好奇心, 也想知道不同特征到底作了怎样的贡献.对模型预测的 badcase 作诊断, 增强洞察, 辅助模型与特征的迭代. 模型可解释其…