Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)

Spark2.x学习笔记:6、在Windows平台下搭建Spark开发环境(Intellij IDEA)

上面这个教程介绍得非常详细,包括 Maven 的安装等等。
下面是针对 上面教程的一些补充说明。

4.1.4 中

没有告诉 localRepository 在哪个文件下,
是在 %MAVEN_HOME%/conf/setting.xml 里
而且,它 的代码 最后少了个 ">"

6.4 中

最新版本的 IntelliJ IDEA 已经包含了 Maven,可以不用安装,但笔者安装了,暂不清楚不安装,选择 IntelliJ IDEA 自带的 Maven 会出现什么问题。

6.7中

第三张图,Maven Home directory 要选择自己本地的Manve安装路径。一般 intelliJ IDEA 会自己检索到。


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第1张图片

三个框里要选择 自己安装的 Maven 路径。并在Maven路径下找到 settings.xmll。
要把 Override 选上!

修改之后,只是修改当前项目的 maven仓库地址,并没有全局修改 maven仓库地址,修改全局方法:


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第2张图片

6.8 编辑代码中

给出了 Spark2.2 的Maven库地址,作者给的地址是特定的某个版本所在的地址,
这里可以按照这个地址:http://mvnrepository.com/artifact/org.apache.spark,然后选择第一个 也就是最近日期的这个:

Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第3张图片

进入后,选择 ..0 以后的版本,一般 ..0 有很多BUG,选择 ..1 会更稳定一些

Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第4张图片

然后复制红色框中的代码,粘贴到 pom.xml 中 ... 标签里。


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第5张图片

复制后,右下角会有这样的提示,选择 Enable Auto-Import” ,会自动下载,要等几分钟...


image.png

创建一个 scala文件的方法:


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第6张图片

创建之后,可以按教程的示例代码复制粘贴,看下,如果出现这种问题:


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第7张图片

是因为 scala 版本和 spark版本不对应,在 spark 官方下载页面,可以看到spark和scala 版本对应关系:


Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第8张图片

上面的意思是:从 spark 2.0版本开始,就默认使用 scala 2.11的版本,如果还在用 scala 2.0版本的用户,就需要自己手动编译 spark了。
我们不手动编译,在 pom.xml 中改一下 scala版本即可:
Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第9张图片

在编译的时候,可能还会遇到这样的错误:
scala signature JUnit4 has wrong version
这是因为 在Maven项目中的test文件里 JUnit版本不匹配造成的,我们暂时不使用单元测试功能,所以先把 test文件夹 删掉:

Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA)_第10张图片

java.lang.NoClassDefFoundError: scala/xml/MetaData
解决办法是在pom文件中引入scala.xml的jar包:

  
    org.scala-lang  
    scala-xml  
    2.11.0-M4  

java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;
spark-core_2.11 改成 spark-core_2.11


            org.apache.spark
            spark-core_2.11
            2.2.1
        
18/04/28 10:06:36 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

原因是在 windows 下调试spark程序,需要在 windows下安装 hadoop,而且需要在 windows中 配置环境变量 HADOOP_HOME ,然后在代码里加上 System.setProperty("hadoop.home.dir", "d:/hadoop");并查看Windows环境下Hadoop目录下的bin目录下有没有winutils.exe,没有就下一个拷贝过去。。。先不搞了,感觉还是打好 jar包 拷贝到 linux 中运行比较好

你可能感兴趣的:(Windows下搭建 Spark开发环境遇到的坑(Intellij IDEA))