如何使用 IntelliJ IDEA 編寫 Spark 應用程序(Scala + Maven)
使用 IntelliJ IDEA 編寫 Spark 應用程序(Scala + Maven)
本教程演示如何使用 IntelliJ IDEA 和 Maven 編寫 Spark 應用程序(以 WordCount 程序為例)。運行環(huán)境為 Ubuntu 16.04。
環(huán)境準備
安裝 IntelliJ IDEA
(1)從 IntelliJ IDEA 官網(wǎng) 下載安裝包。
(2)解壓安裝包并重命名:
cd ~/下載 sudo tar -zxvf ideaIU-2016.3.4.tar.gz sudo mv idea-IU-163.12024.16 /usr/local/Intellij
(3)運行 IDEA:
cd /usr/local/Intellij/bin ./idea.sh
(4)選擇 Evaluate for free 使用試用版。
(5)為快捷啟動創(chuàng)建桌面圖標:
cd /usr/share/applications sudo gedit idea.desktop
在文件中添加以下內(nèi)容:
[Desktop Entry] Encoding=UTF-8 Version=1.0 Name=IntelliJ IDEA GenericName=Java IDE Comment=IntelliJ IDEA is a code-centric IDE focused on developer productivity. Exec=/usr/local/Intellij/bin/idea.sh Icon=/usr/local/Intellij/bin/idea.png Terminal=false Type=Application Categories=Development;IDE
(6)重啟系統(tǒng)后,可在啟動欄中搜索 IntelliJ IDEA。
配置 IntelliJ IDEA
安裝 Scala 插件
(1)打開 IDEA,依次選擇 File -> Settings -> Plugins。
(2)點擊 Install JetBrains Plugin,搜索并安裝 Scala 插件。
配置 JDK 和 Scala SDK
(1)打開 File -> Project Structure。
配置 JDK:
(2)點擊左側(cè) SDKs,添加系統(tǒng)安裝的 JDK(假設(shè)已安裝并配置 Java 環(huán)境)。
(3)配置 Scala SDK:
添加已安裝的 Scala,并選擇 Copy to Project Libraries。
創(chuàng)建 Maven 工程文件
新建工程
在 IDEA 主界面選擇 Create New Project。
選擇 Maven,點擊下一步。
填寫 GroupId 和 ArtifactId,例如:
GroupId: dblab
ArtifactId: WordCount
配置項目路徑,點擊 Finish。
配置工程
添加 Scala 框架
右鍵工程名稱,選擇 Add Framework Support。
勾選 Scala,點擊 OK。
設(shè)置 Sources Root
在 src 文件夾下創(chuàng)建名為 WordCount 的子文件夾。
右鍵該文件夾,選擇 Mark Directory as -> Sources Root。
編寫代碼
創(chuàng)建 Scala 文件
(1)在 WordCount 文件夾中右鍵,選擇 New -> Scala Class,創(chuàng)建名為 WordCount 的 object 類型文件。
(2)粘貼以下代碼
import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf object WordCount { def main(args: Array[String]) { val inputFile = "file:///usr/local/spark/mycode/wordcount/word.txt" val conf = new SparkConf().setAppName("WordCount").setMaster("local") val sc = new SparkContext(conf) val textFile = sc.textFile(inputFile) val wordCount = textFile.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey((a, b) => a + b) wordCount.foreach(println) } }
配置 pom.xml
(1)清空 pom.xml 內(nèi)容,粘貼以下代碼:
<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>dblab</groupId> <artifactId>WordCount</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spark.version>2.1.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> </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> </plugins> </build> </project>
(2)右鍵項目名稱,選擇 Maven -> Reload Project。
運行程序
運行 WordCount
(1)打開 WordCount.scala 文件,在代碼窗口內(nèi)右鍵選擇 Run ‘WordCount’。
(2)確保輸入文件路徑 /usr/local/spark/mycode/wordcount/word.txt 存在,文件內(nèi)容示例:
hello world hello Hadoop
(3)查看終端輸出,結(jié)果類似:
(hello, 2) (world, 1) (Hadoop, 1)
打包為 Jar 文件
導出 Jar 包
(1)打開 File -> Project Structure。
(2)選擇 Artifacts -> + -> Jar -> From modules with dependencies。
(3)選擇 Main Class 為 WordCount。
(4)刪除不必要的文件,只保留 WordCount.jar 和 ‘WordCount’ compile output。
(5)點擊 Apply 和 OK。
(6)導出 Jar 文件:
Build -> Build Artifacts -> Build。導出的 Jar 包存儲在out/artifacts/WordCount_jar/WordCount.jar。 提交到 Spark 集群運行
(1)將 Jar 包復制到指定路徑:
cp /path/to/WordCount.jar /home/hadoop
(2)使用 Spark 提交程序:
/usr/local/spark/bin/spark-submit --class WordCount /home/hadoop/WordCount.jar
(3)查看終端輸出,驗證結(jié)果。
通過以上步驟,你已經(jīng)完成了使用 IntelliJ IDEA 和 Maven 編寫、運行及打包一個簡單的 Spark 應用程序!
到此這篇關(guān)于使用 IntelliJ IDEA 編寫 Spark 應用程序(Scala + Maven)的文章就介紹到這了,更多相關(guān)IDEA 編寫 Spark 應用程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將springboot項目生成可依賴的jar并引入到項目中的方法
SpringBoot項目默認打包的是可運行jar包,也可以打包成不可運行的jar包,本文給大家介紹將springboot項目生成可依賴的jar并引入到項目中的方法,感興趣的朋友一起看看吧2023-11-11Spring?Boot?Admin?監(jiān)控指標接入Grafana可視化的實例詳解
Spring Boot Admin2 自帶有部分監(jiān)控圖表,如圖,有線程、內(nèi)存Heap和內(nèi)存Non Heap,這篇文章主要介紹了Spring?Boot?Admin?監(jiān)控指標接入Grafana可視化,需要的朋友可以參考下2022-11-11java的url方式、本地方式獲取json文件內(nèi)容
這篇文章給大家分享了java的url方式、本地方式獲取json文件內(nèi)容的實例代碼,有需要的朋友參考學習下。2018-07-07SpringSecurityOAuth2實現(xiàn)微信授權(quán)登錄
微信的登錄功能是用戶注冊和使用微信的必經(jīng)之路之一,而微信授權(quán)登錄更是方便了用戶的登錄操作,本文主要介紹了SpringSecurityOAuth2實現(xiàn)微信授權(quán)登錄,感興趣的可以了解一下2023-09-09SpringMVC的注解@RequestMapping屬性及使用
這篇文章主要為大家介紹了SpringMVC注解@RequestMapping屬性及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05Java實現(xiàn)獲取前、后N天日期的函數(shù)分享
本文給大家分享的是使用java實現(xiàn)的獲取當前日期前后N天的函數(shù),非常的簡單實用,有需要的小伙伴可以參考下。2015-03-03