<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        使用IDEA開發Spark應用

        來源:懂視網 責編:小采 時間:2020-11-09 13:05:21
        文檔

        使用IDEA開發Spark應用

        使用IDEA開發Spark應用:IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能都非常棒,而且IDEA是目前Scal
        推薦度:
        導讀使用IDEA開發Spark應用:IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能都非常棒,而且IDEA是目前Scal

        IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能都非常棒,而且IDEA是目前Scala支持最

        IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能都非常棒,而且IDEA是目前Scala支持最好的IDE。IDEA分ultimate和free edition版,ultimate提供了J2EE等很多非常強力的功能,free edition我覺得已經對于我這樣的初學者已經夠用了。前面寫過一篇配置IntelliJ IDEA 13的SBT和Scala開發環境,本文在這個基礎上使用IDEA進行Spark應用的配置和開發。

        1. IDEA環境配置

        (1). 首先在IntellJ/bin/idea64.exe.vmoptions(對應64位大內存系統),加大IDEA的啟動內存:

        -Xms512m
        -Xmx1024m
        -XX:MaxPermSize=512m

        (2). 在IDEA中,Project相當于eclipse中的workspace,同一IDEA窗口只能打開一個workspace。而IDEA中的module等同于eclipse中的project,所以通過File – New Module來為當前Project創建一個module。
        1
        (3). IDEA會生成大量的緩存文件,來于保存配置信息、插件和項目索引文件等。,一般都會有代碼的十倍大小左右大小。在Windows下目錄為C:\Users\THINKP\.IntelliJIdea13,使用File – Invalidate Caches可以校驗索引的有效性并在需要的時候重建。IDEA會經常讀寫這些緩存文件,所以使用SSD來存儲緩存文件會提高不少性能。下面是修改緩存文件路徑的方法:
        a). 關閉IDEA
        b). 將cache目錄復制到對應的目錄下面。
        c). 打開IntelliJ IDEA 13.1.3\bin\idea.properties文件,例如將IDEA轉移到目錄D:\Program Files\.IntelliJIdea13中,只需要修改
        idea.config.path=D:/Program Files/.IntelliJIdea13/config
        idea.system.path=D:/Program Files/.IntelliJIdea13/system
        (4). 主題和顏色
        Settings – IDE Settings – Appearance – Theme:Darcula
        然后把下面override font選項勾上,選擇Yahei 14號字體。
        然后重啟IDEA,界面變成了灰黑色風格,瞬間順眼了很多!
        2
        編輯器可以設置單獨的主題,當前面設置了全局主題時,編輯器的主題也會被修改。接下來,編輯器界面字體有點小,可以在Editor – Colors&Fonts – Fonts另存為一個新的主題,并在這個新主題中修改配置。我的屏幕分辨率有點大,所以設置了15號字體。
        3
        光標所在行背景顏色
        Editor – Colors&Fonts – General – Caret row,選擇了藍色背景,這樣就有了較大的色差。
        4
        (5). 常用快捷鍵
        界面中的Alt+1 project窗口
        Alt+7 代碼結構圖
        Alt+2 Favorite
        F11打書簽,再按一次取消。此時Favorite - Bookmark里就有這一項。
        TODO list Alt+6
        注釋中以TODO開頭時,該TODO項就可以在TODO標簽頁中找到。這樣在有一些思路但是來不及做時,可以以TODO的形式寫注釋
        5
        同步項目(Detect all externally changed files and reload them from disk)Ctrl+Y
        保存(Save all) Ctrl+S
        undo Ctrl+Z
        redo Ctrl+Shift+Y
        剪切 Ctrl+X
        復制 Ctrl+C
        粘貼 Ctrl+V
        查找 Ctrl+F
        替換 Ctrl+R
        光標的上一個位置(undo navigation) Ctrl+Alt+<-
        光標的下一個位置(redo navigation) Ctrl+Alt+->
        make Ctrl+F9
        (6). 項目文件設定
        行分割模式: File - Separators 選擇Windows風格(/r/n), UNIX的風格(/n)或者mac風格(/r)等等。
        將文件鎖定編輯 - File - Make file read only
        文件編碼設置 Project Settings - File Encodings
        推薦YouMeek IDEA教程,我認為是目前詳細的IDEA教程之一。
        http://www.youmeek.com/category/software-system/my-intellij-idea/

        2. 使用IDEA開發Spark程序并運行

        首先編輯build.sbt文件,每個配置項都要有一個空格來分割。

        build.sbt
        name := "sbtTest"
        version := "1.0"
        scalaVersion := "2.10.4"
        libraryDependencies += "org.apache.spark" %% "spark-core_2.10" % "1.0.2"
        libraryDependencies += "org.apache.spark" % "spark-bagel_2.10" % "1.0.2"
        libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.0.2"
        libraryDependencies += "org.apache.spark" % "spark-graphx_2.10" % "1.0.2"
        libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.0.2"

        打開SBT,可以觀察到SBT正在downloading dependencies。

        ...
        [info] downloading http://repo1.maven.org/maven2/org/apache/spark/spark-bagel_2.10/1.0.2/spark-bagel_2.10-1.0.2.jar ...
        [info] 	[SUCCESSFUL ] org.apache.spark#spark-bagel_2.10;1.0.2!spark-bagel_2.10.jar (5672ms)
        [info] downloading http://repo1.maven.org/maven2/org/apache/spark/spark-mllib_2.10/1.0.2/spark-mllib_2.10-1.0.2.jar ...
        [info] 	[SUCCESSFUL ] org.apache.spark#spark-mllib_2.10;1.0.2!spark-mllib_2.10.jar (7351ms)
        [info] downloading http://repo1.maven.org/maven2/org/apache/spark/spark-graphx_2.10/1.0.2/spark-graphx_2.10-1.0.2.jar ...
        [info] 	[SUCCESSFUL ] org.apache.spark#spark-graphx_2.10;1.0.2!spark-graphx_2.10.jar (6349ms)
        ...
        ...

        編寫代碼,這段代碼用于處理web前端日志,其中第二列是session的ID,輸出Session訪問次數的排名。

        /**
         * Created by Debugo on 2014/8/25.
         */
        import org.apache.spark.{SparkContext, SparkConf}
        import org.apache.spark.SparkContext._
        object LogAnalyzer {
         def main(args:Array[String]): Unit ={
         if(args.length!=2) {
         System.err.println("Usage: LogAnalyzer ")
         System.exit(1)
         }
         val conf = new SparkConf().setAppName("LogAnalyzer")
         val sc = new SparkContext(conf)
         // args(0)=file:///root/access_log/access_log.20080601.decode.filter
         // args(1)=file:///root/access_log/result
         sc.textFile(args(0)).map(_.split("\t| ")).filter(_.length==6).
         map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).
         sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile(args(1))
         sc.stop()
         }
        }

        在sbt命令行中中compile&package

        > compile
        [info] Compiling 1 Scala source to C:\Users\Administrator\IdeaProjects\Spark0\target\scala-2.10\classes...
        [success] Total time: 5 s, completed 2014-8-25 16:05:20
        > package
        [info] Packaging C:\Users\Administrator\IdeaProjects\Spark0\target\scala-2.10\spark0_2.10-1.0.jar ...
        [info] Done packaging.
        [success] Total time: 0 s, completed 2014-8-25 16:17:12

        將jar上傳到配置spark運行庫的節點,提交job,spark會創建結果輸出的result目錄。最終RDD被分割成了5個分區。

        spark-submit --master spark://debugo:7077 --class LogAnalyzer --executor-memory=10g /root/spark0_2.10-1.0.jar file:///root/access_log/access_log.20080601.decode.filter file:///root/access_log/result
        ...
        $ ll /root/access_log/result
        total 10840
        -rw-r--r-- 1 root root 2708325 Aug 25 15:58 part-00000
        -rw-r--r-- 1 root root 1114214 Aug 25 15:58 part-00001
        -rw-r--r-- 1 root root 2239113 Aug 25 15:58 part-00002
        -rw-r--r-- 1 root root 0 Aug 25 15:58 part-00003
        -rw-r--r-- 1 root root 5028580 Aug 25 15:58 part-00004
        -rw-r--r-- 1 root root 0 Aug 25 15:58 _SUCCESS
        $ more part-00000
        (11579135515147154,431)
        (6383499980790535,385)
        (7822241147182134,370)
        (900755558064074,335)
        (12385969593715146,226)
        ...

        得到了我們想要的按session ID的排名結果。
        ^^

        參考:

        Spark Programming Guide
        mmicky Spark大數據快速計算平臺

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用IDEA開發Spark應用

        使用IDEA開發Spark應用:IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能都非常棒,而且IDEA是目前Scal
        推薦度:
        標簽: 使用 in 應用
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产无遮挡色视频免费观看性色| 久久亚洲日韩看片无码| 亚洲国产精品成人综合久久久| 国产99久久久国产精免费| 免费无码一区二区三区蜜桃大 | 免费国产真实迷j在线观看| 亚洲性一级理论片在线观看| 久久精品电影免费动漫| 亚洲色欲色欲www在线丝| 人人爽人人爽人人片av免费 | 免费萌白酱国产一区二区| 亚洲精品午夜国产va久久| 57pao国产成永久免费视频| 亚洲av激情无码专区在线播放| 一个人看的www在线免费视频 | 成人免费视频一区二区| 国产美女a做受大片免费| 亚洲天堂免费在线| 2021久久精品免费观看| 亚洲美免无码中文字幕在线| 毛片在线全部免费观看| 久久久久亚洲精品成人网小说| 国产情侣久久久久aⅴ免费| 亚洲成av人片天堂网| 在线毛片片免费观看| 久久精品夜色国产亚洲av| 久久精品视频免费看| 亚洲乱亚洲乱淫久久| 香蕉97超级碰碰碰免费公| 久久久久久亚洲精品影院| 国产成人aaa在线视频免费观看| 另类小说亚洲色图| 中文字幕亚洲综合久久菠萝蜜| 国产又黄又爽胸又大免费视频| 亚洲AV无码专区电影在线观看| 在线观看永久免费| 亚洲欧美成人一区二区三区| 亚洲va中文字幕无码| 久操视频免费观看| 亚洲AV无码乱码在线观看代蜜桃| 在线观着免费观看国产黄|