怎么在win7上安装spark2.0

怎么在win7上安装spark2.0,第1张

1、下载spark解压到D盘,现在的版本是1.2.1

2、下载scala安装到d:\ProgramFiles(x86)\scala\

安装好scala后需要配置环境变量

修改path这个变量,把Scala的bin目录也放进去D:\ProgramFiles(x86)\scala\bin(现在版本的scala会自动修改系统的环境变量,提示的时候选择不阻止)测试是否配置成功,在命令行中输入scala-version!

其实,我想说,起初学习Hadoop的一些经验对现在学习和理解spark有了很大的帮助,尤其反反复复几次Hadoop的配置,现在linux基础指令和spark安装,比较顺手了,出错了也知道哪里遗漏了。

肯定第一步是配置spark环境:包括linux系统的安装,java,ssh,Hadoop,Scala,spark的安装与环境变量设置。虽说简单,但对于初学者说,尤其是没有使用过linux系统的,还是有些挑战。其中遗漏一些细节问题,都会出错。

第二步:java学习。会java的可以忽略,不会的建议还是学习下java,虽说可以跳过java直接学习Scala,但是Scala毕竟和java联系密切,教材中也经常拿Scala和Java做比较。掌握Java基础就行,最差就是能看懂吧。。

第三步:Hadoop学习。HDFS,MR计算框架,必须得知道吧。spark也是需要在HDFS上进行数据获取的,学习Hadoop才能知道其不足,明白spark的优势,为什么Hadoop必死。在hdfs的 *** 作指令也必须掌握。能会写MapReduce程序就再好不过了。(我还不会。。。)

第四步:Scala学习。函数式编程,重点明白这个吧。一些trait什么的使用,会java了这些都是小菜,本质一样,表达方式不同而已。所以。再次强调要学习JAVA。对我来说,不需要深入学习Scala编程,只需能看懂,而且会使用Scala *** 作RDD就行。后面的复杂高级编程我没学,以后用到再看。

第五步:就是spark学习。当然,最好学习spark的方式就是看官方文档,读源码,看博客(博客写的都太简单,没有特别深入的),看RDD的论文,作业如何调度,什么什么的。对于英语水平不高,阅读官方文档略困难的童鞋,推荐某研究院的spark官方文档中文翻译,还是很全的。不推荐买国内的书看,想看度娘参考下就行了,所以。英语也得提升啊。

最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程。而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK。下面是我个人的一些总结。

我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的:

但是因为最开始不了解这个情况,所以我从官网上下载了jdk-8u73-linux-x64.tar.gz,并解压在/Downloads目录下。进入/etc/profile.d目录下,新建path.sh脚本文件,打开并配置环境变量如下图:

在/etc/profile.d目录下,键入source path.sh命令,使配置生效。

然而配置成功后,在控制台中键入java -version,依然会得到第一张图中的信息,后来发现在配置JDK之前,需要卸载系统自带的JDK。

在控制台中键入java,会出现如下图所示的内容:

但是不知道这些,只知道Java开发环境已经配置完毕,所以便开始找对应版本的Scala,我下载的是scala-2.10.5.tgz,并解压在/Downloads目录下。进入/etc/profile.d目录下,打开path.sh文件,配置Scala环境变量,如下图所示:

在/etc/profile.d目录下,键入source path.sh命令,使配置生效。

在控制台中键入scala -version和scala,会分别得到如下两张图中的内容:

关于Scala文件 *** 作中出现的问题

在各种项目中,我们常常需要用到文件 *** 作,笔者在近期的项目中遇到了一个与文件 *** 作相关的问题。

在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"

之后开始使用文件 *** 作:val source1 = Source.fromFile(PATH)

在for循环中,逐行读取文件、处理文件:for(line1 <- source1.getLines()) { // 逐行处理逻辑 }

在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 <- source1.getLines())

但是,结果显示,第二轮 *** 作并没有真正实现。

经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何 *** 作,因为没有读入任何数据。

解决方法是,重新实例化一个source2:val source2 = Source.fromFile(PATH)

再次调用for循环:for(line2 <- source2.getLines())

这样就可以实现再次对文件进行 *** 作了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/9884413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存