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バージョンの問題に注意してください.私はscala 2を使っています.13.1(2.12.11に変更します.そうしないとpomファイルのdependencyが赤くなります)、spark 2.4.5,hadoop2.7.7
 
3.下winutils
https://github.com/steveloughran/winutils
 
4.Cディスクにディレクトリtmp/hiveを作成し、CMDにC:あなたのインストールディレクトリhadoopbinwinutilsと入力します.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张图片
 
ディレクトリの下に結果ファイルが生成されていることを確認します.