<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          提交Spark任務(wù)的三種方式 您所在的位置:網(wǎng)站首頁(yè) 母親屬鼠孩子屬豬好嗎女孩 提交Spark任務(wù)的三種方式

          提交Spark任務(wù)的三種方式

          2024-06-29 10:44| 來(lái)源: 網(wǎng)絡(luò)整理| 查看: 265

          在使用Spark的過(guò)程中,一般都會(huì)經(jīng)歷調(diào)試,提交任務(wù)等等環(huán)節(jié),如果每個(gè)環(huán)節(jié)都可以確認(rèn)程序的輸入結(jié)果,那么無(wú)疑對(duì)加快代碼的調(diào)試起了很大的作用,現(xiàn)在,借助IDEA可以非常快捷方便的對(duì)Spark代碼進(jìn)行調(diào)試,在借助IDEA來(lái)完成Spark時(shí),可以大致通過(guò)以下幾個(gè)步驟來(lái)完成:

          初始構(gòu)建項(xiàng)目階段,使用Local模式本地運(yùn)行項(xiàng)目大致完成階段,使用IDEA連接集群自動(dòng)提交任務(wù)運(yùn)行最終部署運(yùn)行階段,手動(dòng)將源碼包上傳到集群并使用 spark-submit 提交任務(wù)運(yùn)行

          下面,針對(duì)三種方式分別舉例說(shuō)明每種方式需要注意的地方。

          使用IDEA本地運(yùn)行(Local模式)代碼語(yǔ)言:javascript復(fù)制本地運(yùn)行,本地計(jì)算,本地輸出,與集群無(wú)關(guān)代碼語(yǔ)言:javascript復(fù)制import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkConf, SparkContext} object demo { def main(args: Array[String]) { Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) val conf = new SparkConf().setAppName("DemoApp").setMaster("local") val sc = new SparkContext(conf) val data = sc.makeRDD(Seq(1,2,3,4,5,6,7,8,9)) data.map{ x =>{ (x,s"My number is $x") } }.foreach(println) } }此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片使用IDEA本地連接集群運(yùn)行代碼語(yǔ)言:javascript復(fù)制運(yùn)行在集群,計(jì)算在集群,輸出可以在本地(從遠(yuǎn)程取回)

          注意:

          1. 此處打包時(shí)需要將環(huán)境依賴包含在內(nèi)

          2. 注意勾選 Include in build,然后 Rebuild Module 即可打包

          此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片

          3. 代碼內(nèi)需要指定jar包的具體路徑(setJar)和主節(jié)點(diǎn)(setMaster)

          此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片

          4. 注意setMaster地址就是webUI中置頂?shù)牡刂?/p>此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片

          5. 注意這種方式的代碼輸出

          這種方式 rdd.foreach(println) 或者是一般的 println() 都不能在 Console 打印出結(jié)果,如果希望在控制臺(tái)打印出特定輸出必須使用 collect() 將數(shù)據(jù)取回本地(這時(shí)可以將本地想象為集群中的一個(gè)節(jié)點(diǎn)),對(duì)于文件也是同理,其作相當(dāng)于對(duì)遠(yuǎn)程hdfs的作,這里不展開(kāi).

          此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片手動(dòng)上傳Jar包到集群運(yùn)行代碼語(yǔ)言:javascript復(fù)制運(yùn)行在集群,計(jì)算在集群,輸出在集群

          注意:

          1. 此時(shí)打包時(shí)只打包源碼文件,即無(wú)需添加環(huán)境依賴

          2. 此Jar文件內(nèi)只有源碼,一般很小

          此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片

          3. 代碼內(nèi) Sparkconf 的獲取不用具體指定

          代碼語(yǔ)言:javascript復(fù)制import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkConf, SparkContext} object demo { def main(args: Array[String]) { Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) val conf = new SparkConf().setAppName("DemoApp") val sc = new SparkContext(conf) val data = sc.makeRDD(Seq(1,2,3,4,5,6,7,8,9)) data.map{ x =>{ (x,s"My number is $x") } }.foreach(println) } }

          4. 需要使用 spark-submit 命令提交任務(wù)

          此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片此處為博客中出現(xiàn)的關(guān)于Spark、Hadoop、Java、IDEA、Js及html相關(guān)內(nèi)容的圖片留意這種形式代碼語(yǔ)言:javascript復(fù)制import org.apache.spark.{SparkConf, SparkContext} object demo { def main(args: Array[String]) { val conf = new SparkConf().setAppName("DemoApp")setMaster("local") val sc = new SparkContext(conf) val text = sc.textFile("hdfs://192.168.146.130:9000/spark/look.sh") println("remote clusters' file output:") text.foreach(println) sc.stop() } }

          上述代碼中,Spark仍然是Local模式,但資源文件卻在遠(yuǎn)程集群的HDFS上,這也是可以運(yùn)行的!這時(shí)訪問(wèn)的資源確實(shí)是遠(yuǎn)程的資源,但是計(jì)算仍然在本地,仍然算做第一種方式(Local模式)。

          結(jié)束語(yǔ)

          在提交任務(wù)的過(guò)程中可能會(huì)遇到各種各樣的問(wèn)題,一般分為task本身的配置項(xiàng)問(wèn)題和Spark集群本身的問(wèn)題兩部分,task本身的配置問(wèn)題一般可以通過(guò): ?- SparkContext().set() 來(lái)設(shè)置,第二種方式即IDEA連接集群 ?- spark-submit添加參數(shù)–executor-memory 來(lái)設(shè)置,即手動(dòng)提交方式 ?- 具體配置項(xiàng)參見(jiàn)[ Spark配置參數(shù) ] 集群本身的問(wèn)題涉及Worker、Master的啟動(dòng)等等,關(guān)聯(lián)的地方較多,在此不進(jìn)行展開(kāi)。

          最后,整個(gè)提交過(guò)程的前提是IDEA項(xiàng)目配置和Spark集群環(huán)境的正確,以及兩者正確的匹配(比如打包的1.x版本的Saprk任務(wù)大概率是不能運(yùn)行在Spark2.x的集群上的)。



          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 上林县| 南投县| 太白县| 什邡市| 阿荣旗| 高密市| 临朐县| 东乡| 楚雄市| 松滋市| 界首市| 都安| 揭西县| 丹东市| 洛扎县| 鹰潭市| 孟州市| 广宗县| 台湾省| 舞阳县| 堆龙德庆县| 昌都县| 阿城市| 达尔| 海林市| 保康县| 博白县| 延川县| 皮山县| 武清区| 灵丘县| 海城市| 额尔古纳市| 马鞍山市| 焦作市| 兰西县| 阳城县| 理塘县| 昂仁县| 苍山县| 满洲里市| http://444 http://444 http://444 http://444 http://444 http://444