新建一个maven项目(箭头位置点开三角下标随便选择一个)然后greate
然后我们去下载一个maven包(网盘自取)
安装到你指定的目录下然后我们点击file下的settings
打开工具将刚才下载的maven添加进去
这里点击...找到我们指定的maven安装路径选中然后点击ok
这里把override勾中然后点击文件夹图标然后去找maven下的工具箱,选中然后ok
然后应用然后确定
然后再打开file下的project structure添加scala(前提是已经在idea上配置好了scala,没有配置可以看我前几篇文章配置离线版(),在线版直接在idea里下载就好)
然后选择modules,点击+号选择scala
配置好了scala它就会自动填入你安装的scala,然后点击ok
然后选中它(前面框框里打勾)
然后应用确定
然后进入项目下的pom.xml
将以下代码copy进去配好依赖
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.15</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.12.15</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
copy的位置要在<project>里,如光标位置所示
copy完成后进行刷新,点击按钮
如果有爆红或者标黄,可以如下图所示进行排错
然后在main下新建一个目录
新建java目录
在java目录下新建一个文件夹
名字自取
然后创建一个scala文件
如果右击创建不了scala文件那么再打开file下的project structure添加scala和上面添加scala操作一样,+号然后选中
创建完成后我们就可以编写一个程序打包到集群下进行测试(注意要先运行一遍)
package test
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**
**
*
* 注:这是在IDEA上直接运行程序
* 若要打包上传到Spark-shell上运行,需把代码中的“.setMaster("local[*]")”删除,
* 并修改保存路径为“/Tipdm/Spark/Result/house”再打包上传。
*
*
*
*
*/
object test1 {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("zufang")
val sc = new SparkContext(conf)
//依次是:数据id号 标题 链接 地区 地点 地铁站 人数 日期
//对应的字段依次是:
//id title link district bizcircle tagList onsale validdate
val input: RDD[String] = sc.textFile("file:///opt/house.txt")
//数据清洗,第6个字段“地铁站”有些数据为空
val clean: RDD[Array[String]] = input
.filter(_.split("\\t")(5) != "")
.map(line => {
val data = line.split("\\t")
(data)
})
//缓存到内存
clean.cache()
//统计各地区的租房人数
val peopleCount: RDD[(String, Int)] = clean.map(data => (data(3),data(6).toInt)).reduceByKey(_+_)
//保存数据到HDFS
peopleCount.saveAsTextFile("file:///opt/xx")
}
}
编写完成后我们对它进行打包,安此顺序打开jar.jar双击
然年我们在运行结果里找到jar包的路径copy
到此电脑里打开
复制jar包
然后复制到集群环境下,这里因为我集群是min版所以使用xshell
xshell连接虚拟机的教学在网盘里可以自取(百度网盘 请输入提取码)
连接成功把刚才复制的jar包导入到集群里,路径自选,我习惯放opt下,再把我们需要读取的house.txt放进去
然后进集群调用jar包,命令:(spark-submit --class test.test1 /opt/untitled13-1.0-SNAPSHOT.jar)
test.test1是你的idea文件路径
/opt/untitled13-1.0-SNAPSHOT.jar是你的集群下的jar包路径
在集群里使用命令,出现代码结果
打包成功