https://www.jianshu.com/p/200473f264bc
https://blog.csdn.net/a2011480169/article/details/52712421
参考博客:
1、http://wwwlouxuemingcom.blog.163.com/blog/static/20974782201321953144457/
2、http://blog.csdn.net/stark_summer/article/details/42460527
本次具体实现过程:
intellij IDEA本来是不能开发Scala程序的,但是通过配置是可以的,但是通过intellij IDEA软件下载Scala插件总是失败,所以只能手动下载,但是手动下载过程中要注意:
1、一是scala的版本要和Intellij版本对应。如下图是查看方式:
从上面显示的信息是:
Updatated: 2016/7/13
于是我们到下面的网站去找匹配的插件:
http://plugins.jetbrains.com/plugin/?idea&id=1347
当我们下载完插件之后:
把下载的.zip格式的scala插件放到Intellij的安装的plugins目录下;
再安装刚刚放到Intellij的plugins目录下的scala插件(注:直接安装zip文件)即可。如下图:
新建scala项目
导入spark所有jar包
import org.apache.spark.mllib.linalg.{Matrices, Matrix}
import org.apache.spark.{SparkContext, SparkConf}
/**
* Created by Administrator on 2017/4/20.
* xudong
*/
object WordCountLocal {
def main(args: Array[String]) {
/**
* SparkContext 的初始化需要一个SparkConf对象
* SparkConf包含了Spark集群的配置的各种参数
*/
val conf=new SparkConf()
.setMaster("local")//启动本地化计算
.setAppName("testRdd")//设置本程序名称
//Spark程序的编写都是从SparkContext开始的
val sc=new SparkContext(conf)
//以上的语句等价与val sc=new SparkContext("local","testRdd")
val data=sc.textFile("e://hello.txt")//读取本地文件
// val data=sc.textFile("file:///opt/modules/wc.input")//读取本地文件
data.flatMap(_.split(" "))//下划线是占位符,flatMap是对行操作的方法,对读入的数据进行分割
.map((_,1))//将每一项转换为key-value,数据是key,value是1
.reduceByKey(_+_)//将具有相同key的项相加合并成一个
.collect()//将分布式的RDD返回一个单机的scala array,在这个数组上运用scala的函数操作,并返回结果到驱动程序
.foreach(println)//循环打印
}
}
打包jar包,提交到spark集群计算
image.png在spark上提交任务
spark-submit --master spark://192.168.47.244:7077 --class WordCountLocal /opt/modules/wordspark.jar
maven项目搭建
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.1</version>
</dependency>
网友评论