今天是spark系列的第一篇文章。
最近由于一直work from home节省了很多上下班路上的时间,加上今天的LeetCode的文章篇幅较小,所以抽出了点时间加更了一篇,和大家分享一下最近在学习的spark相关的内容。看在我这么拼的份上,求各位老爷赏个转发。。。
PS:本专题不保证每周更新,毕竟不是每周都能加更。。。
言归正传,spark鼎鼎大名,凡是搞分布式或者是大数据的应该都听说过它的大名。它是apache公司开发的一个开源集群计算框架,也就是分布式计算框架。相比于Hadoop的MapReduce,它支持更多的功能,并且运算速度也更快,如今已经成了非常主流的大数据计算框架。几乎各大公司当中都有它的身影。
spark支持像是java、Scala和Python等众多语言,但是对于spark来说语言不太重要,不同的语言写出来的spark代码相差不太大。和之前的文章一样,我会以Python为主,毕竟Python对初学者比较友好(虽然我自己在工作当中使用的是scala)。
今天这篇文章从最基础的spark安装开始讲起,安装spark并不需要一个庞大的集群,实际上单机也可以。这也是我们学习的基础,这样我们就可以在本机上做各种实验了。和大多数环境不同,spark的安装要简单得多,这也是它比较友好的地方。
下载安装进入spark官网,点击download
选择Pre-built for Apache Hadoop,这样我们就不用预先安装Hadoop了,相信我,安装Hadoop是一件非常痛苦的事情。。。
在跳转的链接当中继续点击,开始下载。
压缩包大概在230MB左右,不是特别大,很快能下好。下好了之后会得到一个tgz的压缩包。如果是Mac的话可以直接解压,如果是windows的话可以用7z等解压工具进行解压。
也可以使用命令行进行解压:
sudo tar -zvxf spark-3.0.0-preview2-bin-hadoop2.7.tgz解压完了之后记住你放的位置,当然我更建议你放在专门的位置。或者可以放在/usr/local下。
使用命令进行移动:
sudo mv ~/Downloads/spark-3.0.0-preview2-bin-hadoop2.7 /usr/local/基本配置放置好了之后,我们打开配置文件修改环境配置。因为我用的是zsh的终端,如果是原生的终端的话应该是.bash_profile,由于我用的是mac,如果是windows用户,请百度windows设置环境变量。。。
vim ~/.zshrc在末尾加上三行:
export SPARK_HOME=/usr/local/spark-3.0.0-bin-hadoop2.7export PATH=$PATH:$SPARK_HOME/binexport pyspark_PYTHON=python3改完了之后,别忘了source ~/.zshrc激活一下。
之后我们运行一下pyspark,看到熟悉的logo就说明我们的spark已经装好了
目前为止常用的spark方式主要有两种,一种是通过Python还有一种是通过Scala。这两种都蛮常见的,所以我们可以简单了解一下。
进阶配置下面介绍最基本的开启方法,Python的开启方法我们刚才已经介绍过了,可以直接使用pyspark命令进行唤醒。对于Scala来说也差不多,不过命令换了一下,不叫pyspark也不叫scspark,而是spark-shell。
出来的界面大同小异,只不过语言换成了Scala:
无论是pyspark还是spark-shell都只是spark提供的最基础的工具,使用体验并不好,已经不太适合现在的需求了。好在针对这个问题也有解决方案,一种比较好的解决方式是配置jupyter notebook。
jupyter notebook是非常常用的交互式编程的工具,广泛使用。我们可以在jupyter notebook当中配置Scala和Pyspark。
首先介绍Scala。
Scala的配置方法很简单,由于我们已经配置好了spark的环境变量,我们只需要安装一下jupyter下Scala内核Toree即可。安装的方式也非常简单,只需要两行命令:
pip install toreejupyter toree install --spark_home=$SPARK_HOME运行结束之后, 我们打开点击添加,可以发现我们可以选择的内核多了一个:
pyspark的配置也很简单,我们只需要在.zshrc当中添加两个环境变量:
export PYSPARK_DRIVER_PYTHON=jupyterexport PYSPARK_DRIVER_PYTHON_OPTS=notebook配置好了之后,我们只需要在终端输入pyspark就会自动为我们开启一个新的jupyter网页。我们选择Python3的内核新建job就可以使用pyspark了。我们执行一下sc,如果看到以下结果,就说明我们的pyspark已经可以在jupyter当中执行了。
到这里,关于spark的安装配置就介绍完了。由于我个人使用的是Mac电脑,所以一些配置方法可能对其他系统的电脑并不完全适用。但是配置的过程是大同小异的,一些具体的细节可以针对性地进行调整。
spark是当下非常流行的大数据处理引擎,使用非常广泛,所以了解和掌握spark,也是非常重要的技能。和Hadoop比起来它的安装和使用都要简便许多,希望大家都能体会到它的魅力。
今天的文章就是这些,如果觉得有所收获,请顺手点个关注或者转发吧,你们的举手之劳对我来说很重要。
Spark从入门到精通3:Spark全分布模式的安装和配置
Spark的安装模式一般分为三种:1.伪分布模式:即在一个节点上模拟一个分布式环境,master和worker共用一个节点,这种模式一般用于开发和测试Spark程序;2.全分布模式:即真正的集群模式,master和worker部署在不同的节点之上,一般至少需要3个节点(1个master和2个worker),这种模式一般用于实际的生产环境;3.HA集群模式:即高可用集群模式,一般至少需要4台机器(1个主master,1个备master,2个worker),这种模式的优点是在主master宕机之后,备master会立即启动担任master的职责,可以保证集群高效稳定的运行,这种模式就是实际生产环境中多采用的模式。本小节来介绍Spark的全分布模式的安装和配置。安装介质:
jdk-8u162-linux-x64.tar.gz 提取码:2bh8
hadoop-2.7.3.tar.gz 提取码:d4g2
scala-2.12.6.tgz 提取码:s2ly
spark-2.1.0-bin-hadoop2.7.tgz 提取码:5kcf
准备3台Linux主机,按照下面的步骤在每台主机上执行一遍,设置成如下结果:
安装Linux操作系统比较简单,这里不再详细。参考:《 Linux从入门到精通1:使用 VMware Workstation 14 Pro 安装 CentOS 7 详细图文教程 》
编辑hosts配置文件:# vi /etc/hosts,追加3行:
测试主机名是否可用:
(1)使用ssh-keygen工具生成秘钥对:
(2)将生成的公钥发给三台主机:master、slave1、slave2:
(3)测试秘钥认证是否成功:
由于各个主机上的时间可能不一致,会导致执行Spark程序出现异常,因此需要同步各个主机的时间。在实际生成环境中,一般使用时间服务器来同步时间,但是搭建时间服务器相对较为复杂。这里介绍一种简单的方法来快速同步每台主机主机的时间。我们知道,使用date命令可以设置主机的时间,因此这里使用putty的插件MTPuTTY来同时向每一台主机发送date命令,以到达同步时间的目的。
(1)使用MTPuTTY工具连接三台主机,点击MTPuTTY工具的Tools菜单下的“Send script…”子菜单,打开发送脚本工具窗口。
(2)输入命令:date -s 2018-05-28,然后回车(注意:一定要回车,否则只发送不执行),在下面服务器列表中选择要同步的主机,然后点击“Send script”,即可将时间同步为2018-05-28 00:00:00。
使用winscp工具将JDK安装包 jdk-8u144-linux-x64.tar.gz 上传到/root/tools/目录中,该目录是事先创建的。
进入/root/tools/目录,将jdk安装包解压到/root/training/目录中,该目录也是事先创建的。
使用winscp工具将Hadoop安装包 hadoop-2.7.3.tar.gz 上传到master节点的/root/tools/目录中,该目录是事先创建的。
进入/root/tools/目录,将hadoop安装包解压到/root/training/目录中,该目录也是事先创建的。
进入Hadoop配置文件目录:
(1) 配置hadoop-env.sh文件:
(2) 配置hdfs-site.xml文件:
(3) 配置core-site.xml文件:
(4) 配置mapred-site.xml文件:
将模板文件mapred-site.xml.template拷贝一份重命名为mapred-site.xml然后编辑:
(5) 配置yarn-site.xml文件:
(6) 配置slaves文件:
将master上配置好的Hadoop安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。
第一次启动需要输入yes继续。
启动成功后,使用jps命令查看各个节点上开启的进程:
使用命令行查看HDFS的状态:
使用浏览器查看HDFS的状态:
使用浏览器查看YARN的状态:
(1) 在HDFS上创建输入目录/input:
(2) 将本地数据文件data.txt上传至该目录:
(3) 进入到Hadoop的示例程序目录:
(4) 执行示例程序中的Wordcount程序,以HDFS上的/input/data.txt作为输入数据,输出结果存放到HDFS上的/out/wc目录下:
(5) 查看进度和结果:
可以通过终端打印出来的日志信息知道执行进度:
执行结束后可以在HDFS上的/out/wc目录下查看是否有_SUCCESS标志文件来判断是否执行成功。
如果执行成功,可以在输出目录下看到_SUCCESS标志文件,且可以在part-r-00000文件中查看到wordcount程序的结果:
由于Scala只是一个应用软件,只需要安装在master节点即可。
使用winscp工具将Scala安装包上传到master节点的/root/tools目录下:
进入/root/tools目录,将Scala安装包解压到安装目录/root/training/:
将Scala的家目录加入到环境变量PATH中:
使环境变量生效:
输入scala命令,如下进入scala环境,则证明scala安装成功:
我们先在master节点上配置好参数,再分发给两个从节点slave1和slave2。
使用winscp工具将Spark安装包上传到master节点的/root/tools目录下:
进入/root/tools目录,将Spark安装包解压到安装目录/root/training/下:
注意:由于Spark的命令脚本和Hadoop的命令脚本有冲突(比如都有start-all.sh和stop-all.sh等),
所以这里需要注释掉Hadoop的环境变量,添加Spark的环境变量:
按Esc:wq保存退出,使用source命令使配置文件立即生效:
进入Spark的配置文件目录下:
(1) 配置spark-env.sh文件:
(2) 配置slaves文件:
将master上配置好的Spark安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。
启动后查看每个节点上的进程:
使用浏览器监控Spark的状态:
使用spark-shell命令进入SparkContext(即Scala环境):
启动了spark-shell之后,可以使用4040端口访问其Web控制台页面(注意:如果一台机器上启动了多个spark-shell,即运行了多个SparkContext,那么端口会自动连续递增,如4041,4042,4043等等):
注意:由于我们将Hadoop从环境变量中注释掉了,这时只能手动进入到Hadoop的sbin目录停止Hadoop:
Spark中常用的端口总结:
windows下怎么配置spark环境
一.JDK的安装与环境变量的设置1.1 JDK的安装
JDK(全称是JavaTM Platform Standard Edition Development Kit)的安装,下载地址是Java SE Downloads,一般进入页面后,会默认显示一个最新版的JDK,如下图所示,当前最新版本是JDK 8,更为详细具体的地址是Java SE Development Kit 8 Downloads:
上图中两个用红色标记的地方都是可以点击的,点击进去之后可以看到这个最新版本的一些更为详细的信息,如下图所示:
首先,这里主要包含有8u101和8u102这两个版本,Java给出的官方说明是:
“Java SE 8u101 includes important security fixes. Oracle strongly recommends that all Java SE 8 users upgrade to this release. Java SE 8u102 is a patch-set update, including all of 8u101 plus additional features (described in the release notes). ”
也就是说Java推荐所有开发人员从以前的版本升级到JDK 8u101,而JDK 8u102则除了包括101的所有特性之外,还有一些其他的特性。对于版本的选择,自行选择就好了,其实对于普通开发人员来说,体现不了太大的区别,我这里就是使用的JDK 8u101版本。
选好8u101版本后,再选择你的对应开发平台,由于我的机器是64位的,所以我这里选择Windows64位的版本。记得在下载之前,必须要接受上方的许可协议,在上图中用红色圈出。
除了下载最新版本的JDK,也可以在Oracle Java Archive下载到历史版本的JDK,但官方建议只做测试用。
JDK在windows下的安装非常简单,按照正常的软件安装思路去双击下载得到的exe文件,然后设定你自己的安装目录(安装目录在设置环境变量的时候需要用到)即可。
1.2 环境变量的设置
接下来设置相应的环境变量,设置方法为:在桌面右击【计算机】--【属性】--【高级系统设置】,然后在系统属性里选择【高级】--【环境变量】,然后在系统变量中找到“Path”变量,并选择“编辑”按钮后出来一个对话框,可以在里面添加上一步中所安装的JDK目录下的bin文件夹路径名,我这里的bin文件夹路径名是:F:Program FilesJavajdk1.8.0_101bin,所以将这个添加到path路径名下,注意用英文的分号“;”进行分割。这样设置好后,便可以在任意目录下打开的cmd命令行窗口下运行
java -version11
观察是否能够输出相关java的版本信息,如果能够输出,说明JDK安装这一步便全部结束了。
全部流程如下图所示(后续软件安装的系统变量设置都是这套流程):
1.3 一些题外话
这里讲两句题外话,各位看官不关心的话可以跳过这里,不影响后续的安装步骤。
在软件安装的时候,相信各位没少遇到过环境变量和系统变量,所以这里就来扒一扒令人头疼的PATH, CLASSPATH和JAVA_HOME等参数的具体含义。
1.3.1 环境变量、系统变量和用户变量
环境变量包括系统变量和用户变量
系统变量的设置针对该操作系统下的所有用户起作用;
用户变量的设置只针对当前用户起作用
如果对这些概念还不是特别熟悉的,建议先看完下面几个点之后,再回过头来看这三句话。
1.3.2 PATH
也就是上一步设置的系统变量,告诉操作系统去哪里找到Java.exe的执行路径,当你在命令行窗口冷不丁的敲上如下命令的时候,
java -version11
操作系统首先会一惊,What the hell does “java” mean? 不过吐槽归吐槽,活还是得干,于是悠悠的记起来了盖茨爸爸说过的三句话:
当你看不懂命令行窗口中的一个命令的时候,你首先去你所在的当前目录下找找,是否有这个命令的.exe程序?如果有,那就用它来启动执行;
如果没有,千万别放弃,记得要去Path系统变量下的那些目录下去找一找,如果找到了,启动并执行命令;
如果上面两个地方依然还没找到,那你就撒个娇,报个错好了。
所以我们将JDK安装目录下的bin文件夹添加到Path系统变量的目的也就在这里,告诉操作系统:如果在当前目录下找不到java.exe,就去Path系统变量里的那些路径下挨个找一找,直到找到java.exe为止。那为什么要设置bin文件夹,而不是JDK安装的根目录呢?原因就在于根目录下没有java.exe啊,只有bin文件夹下才有啊喂……
如果只是在命令行窗口下运行一下java的命令,那其实也可以不设置系统变量,只是每次在命令行窗口运行java的命令时,都必须带上一长串路径名,来直接指定java.exe的位置,如下所示。
C:Usersweizierxu>F:Program FilesJavajdk1.8.0_101binjava.exe -version
F:Program 不是内部或外部命令,也不是可运行的程序
或批处理文件。123123
注意:这里报错的原因并不是说直接指定java.exe的路径名这种方式有问题,而是命令行下无法解析带有空格的路径名,所以需要用到双引号,如下:
C:Usersweizierxu>"F:Program Files"Javajdk1.8.0_101binjava.exe -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)12341234
1.3.3 CLASSPATH
CLASSPATH是在Java执行一个已经编译好的class文件时,告诉Java去哪些目录下找到这个class文件,比如你的程序里用到某个Jar包(Jar包里的都是已经编译好的class文件),那么在执行的时候,Java需要找到这个Jar包才行,去哪找呢?从CLASSPATH指定的目录下,从左至右开始寻找(用分号区分开的那些路径名),直到找到你指定名字的class文件,如果找不到就会报错。这里做一个实验,就能明白具体是什么意思了。
首先,我在F:Program FilesJava目录下,利用Windows自带的记事本写了一个类似于Hello World的程序,保存为testClassPath.java文件(注意后缀名得改成java),内容如下:
public class testClassPath{
public static void main(String[] args){
System.out.println("Hello, this is a test on CLASSPATH!");
}
}1234512345
然后,我将cmd的当前目录切换到(通过cd命令)F:Program FilesJava目录下,然后用javac命令来对这个.java文件进行编译,如下图所示:
从上图中可以看到,javac命令可以正常使用(没有任何输出的就表明正确编译了),这是因为执行该命令的javac.exe同样存在于JDK安装路径下的bin目录中,而这个目录我们已经添加到Path系统变量中去了,所以cmd能够认识这个命令。这个时候可以看到F:Program FilesJava目录下多了一个testClassPath.class文件。不过运行这个class文件的时候,报错了。这个时候,CLASSPATH就派上用场了,和1.2节中对Path系统变量设置的方法一样,这里在CLASSPATH(如果系统变量的列表中没有CLASSPATH这个选项,那么点击新建,然后添加路径即可)中最后面添加上;.,英文的分号表示和前面已有的路径分割开,后面的小点.表示当前目录的意思。
这个时候记得要另起一个新的cmd窗口,然后利用cd命令切换到testClassPath.class所在目录,然后再去执行,便可以成功得到结果了。
F:Program FilesJava>java testClassPath
Hello, this is a test on CLASSPATH!1212
因此,和Path变量不同的是,Java在执行某个class文件的时候,并不会有默认的先从当前目录找这个文件,而是只去CLASSPATH指定的目录下找这个class文件,如果CLASSPATH指定的目录下有这个class文件,则开始执行,如果没有则报错(这里有去当前目录下找这个class文件,是因为当前路径通过.的方式,已经添加到了CLASSPATH系统变量中)。
上面讲的指定CLASSPATH系统变量的方法,都是直接写死在系统变量中的,为了避免造成干扰(比如多个同名class文件存在于多个路径中,这些路径都有添加到CLASSPATH系统变量中,由于在找class文件的时候,是从左往右扫描CLASSPATH系统变量中的路径的,所以在利用java testClassPath方法执行的时候,运行的便是位置在CLASSPATH系统变量中最左边的那个路径中,对应的class文件,而这显然不是我们想要的结果),因此在诸如Eclipse等等这些IDE中,并不需要人为手动设定CLASSPATH系统变量,而是只设定当前程序的特定的CLASSPATH系统变量,这样便不会影响到其他程序的运行了。
1.3.4 JAVA_HOME
JAVA_HOME并不是Java本身所需要的参数,而是其他的一些第三方工具需要这个参数来配置它们自己的参数,它存在的意义无非是告诉那些软件,我的JDK安装在这个目录下,你如果要用到我的Java程序的话,直接来我这个目录下找就好了,而JAVA_HOME就是JDK的安装路径名。比如我的JDK安装在F:Program FilesJavajdk1.8.0_101目录下(注意该目录下的bin目录,就是在1.3.2节里Path系统变量中要添加的值),那么JAVA_HOME里要添加的值便是F:Program FilesJavajdk1.8.0_101,以后碰到类似HOME的系统变量,都是软件的安装目录。
二. Scala的安装
首先从DOWNLOAD PREVIOUS VERSIONS下载到对应的版本,在这里需要注意的是,Spark的各个版本需要跟相应的Scala版本对应,比如我这里使用的Spark 1.6.2就只能使用Scala 2.10的各个版本,目前最新的Spark 2.0就只能使用Scala 2.11的各个版本,所以下载的时候,需要注意到这种Scala版本与Spark版本相互对应的关系。我这里现在用的是Scala 2.10.6,适配Spark从1.3.0到Spark 1.6.2之间的各个版本。在版本页面DOWNLOAD PREVIOUS VERSIONS选择一个适合自己需要的版本后,会进入到该版本的具体下载页面,如下图所示,记得下载二进制版本的Scala,点击图中箭头所指,下载即可:
下载得到Scala的msi文件后,可以双击执行安装。安装成功后,默认会将Scala的bin目录添加到PATH系统变量中去(如果没有,和JDK安装步骤中类似,将Scala安装目录下的bin目录路径,添加到系统变量PATH中),为了验证是否安装成功,开启一个新的cmd窗口,输入scala然后回车,如果能够正常进入到Scala的交互命令环境则表明安装成功。如下图所示:
如果不能显示版本信息,并且未能进入Scala的交互命令行,通常有两种可能性:
- Path系统变量中未能正确添加Scala安装目录下的bin文件夹路径名,按照JDK安装中介绍的方法添加即可。
- Scala未能够正确安装,重复上面的步骤即可。
三. Spark的安装
Spark的安装非常简单,直接去Download Apache Spark。有两个步骤:
选择好对应Hadoop版本的Spark版本,如下图中所示;
然后点击下图中箭头所指的spark-1.6.2-bin-hadoop2.6.tgz,等待下载结束即可。
这里使用的是Pre-built的版本,意思就是已经编译了好了,下载来直接用就好,Spark也有源码可以下载,但是得自己去手动编译之后才能使用。下载完成后将文件进行解压(可能需要解压两次),最好解压到一个盘的根目录下,并重命名为Spark,简单不易出错。并且需要注意的是,在Spark的文件目录路径名中,不要出现空格,类似于“Program Files”这样的文件夹名是不被允许的。
解压后基本上就差不多可以到cmd命令行下运行了。但这个时候每次运行spark-shell(spark的命令行交互窗口)的时候,都需要先cd到Spark的安装目录下,比较麻烦,因此可以将Spark的bin目录添加到系统变量PATH中。例如我这里的Spark的bin目录路径为D:Sparkbin,那么就把这个路径名添加到系统变量的PATH中即可,方法和JDK安装过程中的环境变量设置一致,设置完系统变量后,在任意目录下的cmd命令行中,直接执行spark-shell命令,即可开启Spark的交互式命令行模式。
四.HADOOP下载
系统变量设置后,就可以在任意当前目录下的cmd中运行spark-shell,但这个时候很有可能会碰到各种错误,这里主要是因为Spark是基于Hadoop的,所以这里也有必要配置一个Hadoop的运行环境。在Hadoop Releases里可以看到Hadoop的各个历史版本,这里由于下载的Spark是基于Hadoop 2.6的(在Spark安装的第一个步骤中,我们选择的是Pre-built for Hadoop 2.6),我这里选择2.6.4版本,选择好相应版本并点击后,进入详细的下载页面,如下图所示,选择图中红色标记进行下载,这里上面的src版本就是源码,需要对Hadoop进行更改或者想自己进行编译的可以下载对应src文件,我这里下载的就是已经编译好的版本,即图中的’hadoop-2.6.4.tar.gz’文件。
下载并解压到指定目录,然后到环境变量部分设置HADOOP_HOME为Hadoop的解压目录,我这里是F:Program Fileshadoop,然后再设置该目录下的bin目录到系统变量的PATH下,我这里也就是F:Program Fileshadoopbin,如果已经添加了HADOOP_HOME系统变量,也可以用%HADOOP_HOME%bin来指定bin文件夹路径名。这两个系统变量设置好后,开启一个新的cmd,然后直接输入spark-shell命令。
正常情况下是可以运行成功并进入到Spark的命令行环境下的,但是对于有些用户可能会遇到空指针的错误。这个时候,主要是因为Hadoop的bin目录下没有winutils.exe文件的原因造成的。这里的解决办法是:
- 去 https://github.com/steveloughran/winutils 选择你安装的Hadoop版本号,然后进入到bin目录下,找到winutils.exe文件,下载方法是点击winutils.exe文件,进入之后在页面的右上方部分有一个Download按钮,点击下载即可。
- 下载好winutils.exe后,将这个文件放入到Hadoop的bin目录下,我这里是F:Program Fileshadoopbin。
- 在打开的cmd中输入
F:Program Fileshadoopbinwinutils.exe chmod 777 /tmp/Hive
这个操作是用来修改权限的。注意前面的F:Program Fileshadoopbin部分要对应的替换成实际你所安装的bin目录所在位置。
经过这几个步骤之后,然后再次开启一个新的cmd窗口,如果正常的话,应该就可以通过直接输入spark-shell来运行Spark了。
正常的运行界面应该如下图所示:
从图中可以看到,在直接输入spark-shell命令后,Spark开始启动,并且输出了一些日志信息,大多数都可以忽略,需要注意的是两句话:
Spark context available as sc.
SQL context available as sqlContext.1212
Spark context和SQL context分别是什么,后续再讲,现在只需要记住,只有看到这两个语句了,才说明Spark真正的成功启动了。
五. Python下的PySpark
针对Python下的Spark,和Scala下的spark-shell类似,也有一个PySpark,它同样也是一个交互式的命令行工具,可以对Spark进行一些简单的调试和测试,和spark-shell的作用类似。对于需要安装Python的来说,这里建议使用Python(x,y),它的优点就是集合了大多数的工具包,不需要自己再单独去下载而可以直接import来使用,并且还省去了繁琐的环境变量配置,下载地址是Python(x,y) - Downloads,下载完成后,双击运行安装即可。因为本教程主要以Scala为主,关于Python的不做过多讲解。
六. 小结
至此,基本的Spark本地调试环境便拥有了,对于初步的Spark学习也是足够的。但是这种模式在实际的Spark开发的时候,依然是不够用的,需要借助于一个比较好用的IDE来辅助开发过程。下一讲就主要讲解ItelliJ IDEA以及Maven的配置过程。