Spark之初体验:maven如何新建一个spark项目
基于maven如何新建一个spark项目?
会让你选择Java的版本,这里只要是1.8以上的就OK
然后下一步:
这里的groupid就是项目所属的哪个组下面,artifactid是指详细的哪个文件,这里要好好写,因为后面pom配置还有这两项。
输入project name和位置:
新建了文件之后,看到相关的文件目录和pom文件如下:
然后要在main中创建一个Scala的文件夹;我们发现这个文件夹右键不能创建scala class.
这是因为Java和scala两个文件夹的目录颜色不一致,归根到底是属性不一致,这里需要配置一下。
找到file里面的project structure.打开进行设置:
把它配置成source的属性。
然后发现可以创建java class了,但是,为什么没有Scala class??
其实还要配置libraries这里,打开刚才的project structure:
然后就有了:
我们创建一个Scala class 然后创建把代码搞进去:
package com.july.spark_new
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.log4j.{Level, Logger}
/**
* Created by tsun on 19/3/23.
*/
object test {
def main(args: Array[String]) {
Logger.getLogger("org").setLevel(Level.ERROR)
val sparkConf = new SparkConf().setAppName("spark api").setMaster("local")
sparkConf.set("spark.testing.memory", "2147480000")
val sparkContext = new SparkContext(sparkConf)
val data = Array(1, 2, 3, 4, 5)
val inputRdd = sparkContext.parallelize(data)
inputRdd.collect().foreach(println(_))
println("fuck the spark!!!!!!!!")
}
}
为啥这么多的红字,在intellij 中这些红字都是报错,那为啥会报错呢,然后报错的意思是我们没有这个包,无法导入,为啥无法导入呢??我们发现是由于spark的jars包没有被引进来,怎么做?
打开project structure:
如你所看到的,这个spark的jars包是必须导进来的。
一下就神清气爽了有没有?
然后运行,报错如下:java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
这就说的是分配的内存不够,好的,然后我们手动分配一下:
就是这一句,然后,运行:
成功了,对不对?
其实为了得到上面的这句:“f**k the spark”,真的是非常非常不容易。断断续续配置了好几天,才弄出来。
因为搭建这个spark的真的是挺费神的,首先要找个合适的scala版本,但是这个scala的下载就很恼火(国外的网站,你知道的,看来还真得花点钱科学上网才行)。然后好容易搞了个2.12.3的scala, jdk是需要的1.8以上,然后maven也要下载一个;最后才发现自己竟然没有下spark,然后又下spark,spark也下了两次,最后的版本是2.4.3的,然后当然需要Hadoop了,这两个都还顺利,下好解压,然后配置环境变量就能用了。然后scala的版本太高,和spark有冲突,继续报错,无奈又下2.11.7的scala。
真的是不容易,建议以后同志们要配置好的话,还是谨慎一点,把各个组件的版本都搞清楚,然后争取两次成功,因为一次成功是不可能的。。。
好了,先写到这里,其实这个东西,多试试,总能出来的,对不对?我们需要的就是一次一次的尝试,到最后突然跑通的那一下,都值了。