IDEA中直接提交Spark任務

    記錄下如何在Widows下的IDEA中直接提交Spark on yarn任務。由於項目使用的是Spring Boot,這裏提交任務指的是在IDEA中啓動Spring Boot工程,然後發送一個Rest請求,觸發Spark on yarn程序的運行。啓動一個Spring Boot工程挺快的,引用兩個jar包就搞定了。

 

正常流程:

1.配置Hadoop環境變量

詳見“參考一”或者下載附件即可,放到電腦上然後配置下環境變量,個人使用的Hadoop版本是2.6.0-cdh5.7.x。

 

 

 

2.Service層編寫程序

在Service層new 一個SparkContext,運行完畢之後將該SparkContext關閉

 

3. 將工程打包,得到程序依賴的jar包,將這些jar包壓縮成ZIP文件,上傳到HDFS某一目錄下

.set("spark.yarn.archive"," hdfs://IP:Port/***.zip")

不要使用spark.yarn.jars,一個個jar包都要加載,速度沒有這個快

 

4.發送rest請求,觸發Service層 Spark On Yarn任務的提交

 

5.如果想修改提交到Yarn上的“User”名

在代碼中使用System.setProperty("HADOOP_USER_NAME", "root")將提交的用戶設置成root是無效的,可以在IDEA中配置環境變量:

這樣提交到Yarn隊列中的用戶名就會變成root了。

 

異常情況說明:

1. 錯誤提示:createTaskScheduler org.apache.spark.SparkException: Could not parse Master URL ‘yarn’

    工程中沒有引用spark-yarn jar包,pom文件中引入依賴即可

 

 

2. Yarn報錯,AM的Container退出

AM是程序一啓動就退出了,所以從界面上看不到詳細的錯誤信息,只能使用Yarn命令來看日誌了:

還是jar包問題,工程中引入spark-yarn jar包之後,忘記將jar包上傳到HDFS目錄下。

 

3. Yarn報錯,服務端無法連接本地IDEA

公司網絡的問題了…服務器和客戶端要在同一個網段,然後配置好host名

 

最終,換了一臺可以直接通信的服務器,將任務成功提交到了Yarn上

 

 

 

 

參考:

    https://www.cnblogs.com/honey01/p/8027193.html( Windows下Hadoop環境變量配置)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章