windows下spark环境搭建+idea中WordCount例子

一、windows下spark环境搭建

1.安装JDK和scala

 

2.安装spark和hadoop

http://spark.apache.org/downloads.html

https://archive.apache.org/dist/hadoop/common/

慢的话可以去国内镜像eg:

http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/

注意spark、hadoop和scala版本问题,我用的是scala2.13.1(换成2.12.11了,不然pom文件中dependency会红),spark2.4.5,hadoop2.7.7

 

3.下winutils

https://github.com/steveloughran/winutils

 

4.在C盘建目录tmp/hive然后在CMD输入C:\你的安装目录\hadoop\bin\winutils.exe chmod 777 C:/tmp/hive

测试spark-shell

windows下spark环境搭建+idea中WordCount例子_第1张图片

此处有问题未解决:退出spark-shell报错

 

 

二、idea中WordCount例子

1.idea中使用maven创建spark项目,一路next就可以

 

2.修改pom.xml文件,我的pom文件eg:

 



    4.0.0

    org.example
    cj_spark
    1.0-SNAPSHOT

    
        2.4.5
        2.12.11
    


    
        
            org.apache.spark
            spark-core_2.12
            ${spark.version}
        
        
            org.apache.spark
            spark-streaming_2.12
            ${spark.version}
        
        
            org.apache.spark
            spark-sql_2.12
            ${spark.version}
        
        
            org.apache.spark
            spark-hive_2.12
            ${spark.version}
        
    

 

如果import速度慢的话可以添加maven镜像:



      

    

        mirrorId

        central

        Human Readable Name 

        http://repo1.maven.org/maven2/

    

    

     

        alimaven 

        aliyun maven 

        http://central.maven.org/maven2 

        central 

    

    

     

        alimaven 

        aliyun maven 

        http://maven.aliyun.com/nexus/content/repositories/central/ 

        central 

    



 

3.例子程序,为了快速调通程序,我在网上copy的,改一下文件输入输出路径:

import org.apache.spark._



object WordCount {

  //System.setProperty ("hadoop.home.dir", "C:\\hadoop_home\\")

  def main(args: Array[String]) {

    var masterUrl = "local[1]"

    var inputPath = "C:\\spark_data\\data.txt"

    var outputPath = "C:\\spark_data\\output"

    if (args.length == 1) {

      masterUrl = args(0)

    } else if (args.length == 3) {

      masterUrl = args(0)

      inputPath = args(1)

      outputPath = args(2)

    }

    println(s"masterUrl:${masterUrl}, inputPath: ${inputPath}, outputPath: ${outputPath}")

    val sparkConf = new SparkConf().setMaster(masterUrl).setAppName("WordCount")

    val sc = new SparkContext(sparkConf)

    val rowRdd = sc.textFile(inputPath)

    val resultRdd = rowRdd.flatMap(line => line.split("\\s+"))

      .map(word => (word, 1)).reduceByKey(_ + _)

    resultRdd.saveAsTextFile(outputPath)

  }

}


 

windows下spark环境搭建+idea中WordCount例子_第2张图片

 

到目录下查看结果文件已经生成好了。

 

 

你可能感兴趣的:(大数据,spark)