Spark下载与入门

1 下载Spark

下载和解压缩,首选下载预编译版本的Spark,访问:Spark download,选择包类型为:“Pre-built for Apache Hadoop 3.2 and later",然后直接下载Spark包:spark-3.1.2-bin-hadoop3.2.tgz。下载好后,对包进行解压缩,并且进入到spark目录中:

cd ~
tar -xf spark-3.1.2-bin-hadoop3.2.tgz
cd spark-3.1.2-bin-hadoop3.2
ls

从中我们可以看到基本文件目录如下:
在这里插入图片描述

  • README.md : 包含用来入门Spark的简单的使用说明
  • bin : 包含可以用来和Spark进行各种方式的交互的一系列可执行文件
  • python, R : 不同语言的包程序
  • examples: 包含一些可以查看和运行的Spark程序,对学习Spark的API有帮助

2 Spark中的Python shell

Spark带有交互式的shell,可以作即时数据分析。若打开Python版本的Spark shell,也就是PySpark Shell, 进入Spark目录然后输入:

bin/pyspark

若打开Scala版本的shell,输入:

bin/spark-shell

稍等片刻,就可以进行交互式的编程了。在Spark中,我们通过对分布式数据集的操作来表达我们的计算意图,这些计算会自动地在集群上并行进行。这样的数据集被称为弹性分布式数据集 (resilient distributed dataset) 简称RDD。RDD是spark对分布式数据和计算的基本抽象。我们先来使用shell从本地文本文件创建一个RDD来作一些简单的即时统计。

在这里插入图片描述
创建一个名为lines的RDD,统计RDD中元素个数(行数),输出RDD中的第一个元素(第一行)。

3 Spark核心概念

每个spark应用都由一个驱动器程序来发起集群上的各种并行操作。而在上面的例子里,实际的驱动器程序就是Spark shell本身。驱动器程序通过一个SparkContext对象来访问Spark。这个对象代表对计算集群的一个连接。shell启动时已经自动创建了一个SparkContext对象,是一个叫做sc的变量。一旦有了SparkContext,就可以用它创建RDD。上面我们调用了sc.textFile()来创建一个代表文件中各行文本的RDD, 我们可以在这些行上进行各种操作。要执行这些操作,驱动器程序一般要管理多个执行器(executor)节点,若果我们再集群上运行count()操作,那么不同的节点会统计文件的不同部分的行数。如下展示了spark如何在一个集群上运行:
在这里插入图片描述
我们有很多用来传递函数的API,可以将对应操作运行在集群上。比如,刷选出文件中包含某个特定单词的行:
在这里插入图片描述
Spark API最神奇的地方就在于像filter这样基于函数操作也会在集群上并行执行

4 独立应用

在Python中,可以把应用写成Python脚本,但是需要使用Spark自带的bin/spark-submit脚本来运行。spark-submit脚本会帮我们引入Python程序的Spark依赖。这个脚本为Spark的PythonAPI配置好了运行环境,只需要如下那样运行脚本即可:

bin/spark-submit my_script.py

一旦完成了应用与spark的连接,接下来就需要在程序中导入spark包并且创建SparkContext。可以先创建SparkConf对象来配置应用,然后基于这个SparkConf创建一个SparkContext对象。基于python语言的初始化spark如下:

from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf=conf)

创建SparkContext的最基本方法,只需传递两个参数:集群URL,告诉Spark如何连接到集群上。在这个例子上,我们使用的是local,让spark运行在单机单线程上而无需连接到集群。应用名:当连接到一个集群时,这个值可以帮助在集群管理器的用户界面中找到自己的应用。

5 总结

Spark编程的核心概念:通过一个驱动器程序创建一个SparkContext和一系列RDD,然后进行并行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值