Spark概念和用途初识

2,405 阅读2分钟

什么是Spark?

Spark是一个用来实现快速而通用的集群计算的平台。

Spark项目包含多个紧密集成的组件,Spark的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。

Spark软件栈:

Spark的用户和用途

  • 数据科学任务:将数据转换为更方便分析和观察的格式
  • 数据处理应用:使用Spark开发生产环境中的数据处理应用

Spark下载使用

下载地址:spark.apache.org/downloads.h…

  • Spark本身是用Scala写的,运行在Java虚拟机(JVM)上,要准备好java环境,如需使用Python接口,则需要准备Python环境
  • 解压后,执行bin/pyspark启动PySpark shell
  • 使用shell从本地文本文件创建一个RDD(弹性分布式数据集)来做一个简单的统计
>>> lines = sc.textFile("README.md") # 创建一个名为lines的RDD
>>> lines.count() # 统计RDD中的元素个数
127
>>> lines.first() # 这个RDD中的第一个元素,也就是README.md的第一行
u'# Apache Spark'

Spark能够在工作节点把数据读取到内存中,所以许多分布式计算都可以在几秒内完成,哪怕是那种在十几个节点上处理TB级别的数据的计算

Spark核心概念

  • 从上层来看,每个Spark应用都由一个驱动器程序来发起集群上的各种并行操作,驱动器程序应包含应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作
  • 驱动器程序通过一个SparkContext对象来访问Spark,这个对象代表对计算集群的一个连接,即Shell启动的时候已经自动创建了一个SparkContext对象,是一个叫作src的变量
  • 一旦有了SparkContext,就可以用它创建RDD,然后进行并行操作

对Spark有了粗浅的认识和理解,期待下次的小实践!

摘自:Spark快速大数据分析