Windows下配置IDEA的Spark的开发环境

Windows下配置IDEA的Spark的开发环境

  1. 下载Spark-hadoop的文件包,spark-2.4.5-bin-hadoop2.7,官网进行下载http://spark.apache.org/downloads.html

  2. IDEA下载Scala语言的开发插件,进行安装重启;

  3. 下载scala的包并进行安装,https://www.scala-lang.org/download/all.html,这个网页可以下载所有scala版本

  4. idea创建普通的scala项目(个人使用的是JAVA的maven项目,然后创建子项目为scala项目),创建完子模块项目之后,将spark-2.4.5-bin-hadoop2.7里面的lib包全部加载到项目中

  5. 下载hadoop的二进制包,https://archive.apache.org/dist/hadoop/common/ ,这个网址下可以下载各个版本的hadoop的包。ps:可以下载apache旗下所有的包

  6. 下载完之后配置HADOOP HOME的环境变量

  7. 此时需要下载hadoop的windows版本的插件,winutils.exe和hadoop.dll两个文件件,这两个文件是别人在windows下编译hadoop相应版本后产生的,我就不编译了,直接在网上搜索下载相应版本的插件,一般都能下载到。winutils.exe放置到Hadoop的bin目录下,hadoop.dll放置到C:\Windows\System32目录下,切记:hadoop.dll一定不要放到hadoop的bin目录下,会报错。

  8. 安装完成。开始写Word Count吧

  9. WordCount示例

import java.io.File
   
   import oracle.net.aso.f
   import org.apache.log4j.{Level, Logger}
   import org.apache.spark.rdd.RDD
   import org.apache.spark.{SparkConf, SparkContext}
   
   
   object WordCount {
     //删除目录和文件
     def dirDel(path: File) {
       if (!path.exists())
         return
       else if (path.isFile()) {
         path.delete()
         println(path + ":  文件被删除")
         return
       }
   
       val file: Array[File] = path.listFiles()
       for (d <- file) {
         dirDel(d)
       }
   
       path.delete()
       println(path + ":  目录被删除")
   
     }
   
   
     def main(args: Array[String]): Unit = {
   
       Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
       //1.创建SparkConf并设置App名称
       val sparkConf: SparkConf = new SparkConf().setAppName("WC").setMaster("local[*]")
   
       //2.创建SparkContext,
       // 该对象是提交Spark App的入口
       val sc = new SparkContext(sparkConf)
   
       //3.使用sc创建RDD并执行相应的transformation和action
       //    sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).saveAsTextFile(args(1))
       //读取文件
       val line: RDD[String] = sc.textFile("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/words.txt")
       //分割单词
       val word: RDD[String] = line.flatMap(_.split(" "))
       word.collect().foreach(println)
       //将单词形成二元组
       val wordAndOne: RDD[(String, Int)] = word.map((_, 1))
       //统计单词总数
       val wordAndCount: RDD[(String, Int)] = wordAndOne.reduceByKey(_ + _)
       wordAndCount.collect().foreach(println)
   
       //删除目标目录
       val targetDir = new File("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/word10")
       dirDel(targetDir)
   
       //    写入文件
       wordAndCount.saveAsTextFile("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/word10")
       //4.关闭连接
       sc.stop()
     }
   }

参考:https://www.bilibili.com/video/av16208774?from=search&seid=7975332398783130813

​ https://www.cnblogs.com/lovegmail/p/6053945.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值