Spark2.2,IDEA,Maven開發環境搭建附測試


前言:

  停滯了一段時間,現在要沉下心來學習點東西,出點貨了。

  本文沒有JavaJDK ScalaSDK和 IDEA的安裝過程,網絡上會有很多文章介紹這個內容,因此這里就不再贅述。

一、在IDEA上安裝Scala插件

首先打開IDEA,進入最初的窗口,選擇Configure -——>Plugins

然后會看到下面的窗口:

此時我們選擇‘Browse Repositories …’,然后輸入Scala,

找到下圖這一項,點擊“install”即可

安裝完成后,請重啟IDEA。

二、創建一個Scala工程

依次點擊Create New Project  ——>Scala——>IDEA——>Next

 

然后我們需要點擊create,增加相應的SDK版本及位置。

自己填寫好其他信息后就可以,點擊Finish了。

 

三、添加Maven框架以及編寫pom.xml

首先右鍵項目名然后選擇Add Framework Support...

然后找到maven打鈎,點擊Ok即可.

 

接下來,編寫Pom.xml,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sudy</groupId>
    <artifactId>SparkStudy</artifactId>
    <version>1.0-SNAPSHOT</version>

  
    <properties>
        <spark.version>2.2.0</spark.version>
        <scala.version>2.11</scala.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>


    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.15.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

        </plugins>
    </build>


</project>

 

四、添加winutils.exe文件

winutils.exe下載地址:

https://codeload.github.com/srccodes/hadoop-common-2.2.0-bin/zip/master

解壓后,記住放入的路徑就好。

五、使用local模式測試環境是否搭建成功?

右鍵java文件夾,依次點擊New——>Scala Class

然后選擇Object,輸入名稱即可。

寫入測試代碼:

 測試代碼部分可以參照我之前寫的一篇博客的后半部分:

分別使用Hadoop和Spark實現二次排序

 為了大家方便這里復制出代碼和測試文本:

 

import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.rdd.RDD.rddToOrderedRDDFunctions
import org.apache.spark.rdd.RDD.rddToPairRDDFunctions

object SecondarySort {
  def main(args: Array[String]) {
    System.setProperty("hadoop.home.dir", "D:\\hadoop-common-2.2.0-bin-master")
    val conf = new SparkConf().setAppName(" Secondary Sort ")
      .setMaster("local")
    var sc = new SparkContext(conf)
    sc.setLogLevel("Warn")
    //val file = sc.textFile("hdfs://localhost:9000/Spark/SecondarySort/Input/SecondarySort2.txt")
    val file = sc.textFile("d:\\TestData\\SecondarySort.txt")
    val rdd = file.map(line => line.split(","))
      .map(x=>((x(0),x(1)),x(3))).groupByKey().sortByKey(false)
      .map(x => (x._1._1+"-"+x._1._2,x._2.toList.sortWith(_>_)))
    rdd.foreach(
      x=>{
        val buf = new StringBuilder()
        for(a <- x._2){
          buf.append(a)
          buf.append(",")
        }
        buf.deleteCharAt(buf.length()-1)
        println(x._1+" "+buf.toString())
      })
    sc.stop()
  }
}

測試文本如下:

2000,12,04,10
2000,11,01,20
2000,12,02,-20
2000,11,07,30
2000,11,24,-40
2012,12,21,30
2012,12,22,-20
2012,12,23,60
2012,12,24,70
2012,12,25,10
2013,01,23,90
2013,01,24,70
2013,01,20,-10

 

注意:

D:\\hadoop-common-2.2.0-bin-master 是我解壓后放入的路徑。
d:\\TestData\\SecondarySort.txt 是測試數據的位置,用於程序的運行。


好了,這篇文章結束了,剩下就是你的動手操作了。

參考:

2017.10最新Spark、IDEA、Scala環境搭建

【spark】創建一個基於maven的spark項目所需要的pom.xml文件模板

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM