如何學習大數據:spark發佈程序

1、對於spark程序只是用於默認的spark包的狀況

直接點擊pcakagejava

將程序進行在linux當中進行發佈mysql

客戶端模式:測試linux

spark-submit --class  com.keduox.App \面試

--master yarn \sql

--deploy-mode client \apache

test_submit-1.0-SNAPSHOT.jar架構

一、 (在數據量很小的時候)速度快app

二、 依賴於jvm進程來執行的。因此不須要啓動hdfs、yarn、spark的。框架

集羣模式:生產環境、正式環境jvm

出現異常:Retrying connect to server: master/192.168.200.200:8032.

表示yarn沒有啓動:start-yarn.sh

java.net.ConnectException: Call From master/192.168.200.200 to  master:9000

表示hdfs沒有啓動:start-dfs.sh

發佈以後出現錯誤:

yarn.ApplicationMaster: SparkContext did not initialize after  waiting for 100000 ms

將代碼中的setMaster(local[*])刪除掉--à不推薦這樣子使用

刪掉以後,從新打包是能夠成功運行。

沒有成功的緣由是:由於spark在執行的時候,是採用分佈的執行,也就是每個節點執行的東西只是表明整個程序的一部分。代碼當中將輸出地寫成了file:///keduox/spark_out,看到的狀況是一會成功,一會失敗。

建議使用方式:

若是在一個模塊當中有多個spark的程序代碼時,創建將setMaster的值設置在properties文件當中。由於咱們會常常在local和yarn以前進行切換操做。

new SparkConf().setMaster("yarn-cluster")

2、發佈到cdh上

2.1cdh配置spark

2.2讓yarn與spark進行關聯

在yarn點當中點擊如下內容

三、 改變spark任務的默認大小

重啓

3、將統計的結果放到yarn去運行:

3.1:直接package

java.sql.SQLException: No suitable driver 缺乏mysql的包

若是使用的是經過mysql 的方式的話,將沒法找到spark默認使用的驅動包。建議在map屬性當中加入:"driver" -> "com.mysql.jdbc.Driver"

java.lang.InstantiationException: org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper

當咱們須要有數據,寫入到mysql的時候,也須要指定driver

val properties = new Properties()

properties.setProperty("driver","com.mysql.jdbc.Driver")

spark-submit --class com.keduox.HotCount \

--master yarn \

--deploy-mode cluster \

--jars /keduox/mysql-connector-java-5.1.38.jar \

hot_sales-1.0-SNAPSHOT.jar

3.2採用插件方式

<plugins>

<plugin>

<artifactId>maven-assembly-plugin</artifactId>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

</configuration>

  </plugin>

</plugins>

 

發佈:

用默認方式打包的話,會將全部的maven中的包全打到jar當中,jar太大了。

能夠在打包的時間,將spark、hadoop、hive的包給他去掉

在pom.xml文件當中,對於不須要打包的依賴中當入:

<scope>provided</scope> ---可是要特別注意:打包完了以後,還須要進行編碼的話,須要將這個scope去掉,否則代碼編譯不經過

3.3能夠經過sc的方式加載包

        sc.addJar("")

3.4 idea提供的打包方式

感興趣能夠加Java架構師羣獲取Java工程化、高性能及分佈式、高性能、深刻淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點高級進階乾貨的直播免費學習權限 都是大牛帶飛 讓你少走不少的彎路的 羣..號是:855801563 對了 小白勿進 最好是有開發經驗

注:加羣要求

一、具備工做經驗的,面對目前流行的技術不知從何下手,須要突破技術瓶頸的能夠加。

二、在公司待久了,過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的能夠加。

三、若是沒有工做經驗,但基礎很是紮實,對java工做機制,經常使用設計思想,經常使用java開發框架掌握熟練的,能夠加。

四、以爲本身很牛B,通常需求都能搞定。可是所學的知識點沒有系統化,很難在技術領域繼續突破的能夠加。

5.阿里Java高級大牛直播講解知識點,分享知識,多年工做經驗的梳理和總結,帶着你們全面、科學地創建本身的技術體系和技術認知!

相關文章
相關標籤/搜索