Spark 如何寫Java客戶端代碼(成功版)(四)

1.Spark環境準備,參考我之前寫的文章https://blog.csdn.net/penker_zhao/article/details/102549636

可以自己用VirtualBox虛擬一個CentOS,也可以購買騰訊雲或者其他雲主機。

2.Spark腳手架程序

https://github.com/astra-zhao/hui-bigdata-spark

運行完後,進入到hui-bigdata-spark-starter,在shell界面運行如下命令:mvn clean package spring-boot:repackage

即可生成可單獨執行的Jar包,然後上傳到雲主機(或者虛擬機)運行

3.出現問題總結:

3.1.java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.

修改方式,建議使用如下設置:

// 初始化Spark環境
        SparkConf sparkConf = new SparkConf()
                .setMaster(sparkConfig.getMaster()).setAppName(sparkConfig.getAppName());
        sparkConf.set("spark.testing.memory", "471859200");

3.2.executor 0): java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field org.apache.spark.api.java.JavaRDD$$anonfun$filter$1.f$1 of type org.apache.spark.api.java.function.Function in instance of org.apache.spark.api.java.JavaRDD$$anonfun$filter$1
    at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2233)

改成使用本地開發模式,yaml文件進行配置

#如果是在遠程主機跑,用下面配置
  #master: spark://122.51.56.146:7077
  #master: spark://localhost:7077
    #如果是本地跑,用下面配置
  master: local

4.最後使用java -jar hui-bigdata-spark-starter-1.0.0-SNAPSHOT.jar com.hui.bigdata.statistics.job.StatisticsJob

在雲主機(雲虛擬機)運行一個Java示例 ,成功運行後,截圖如下:

 

4.FAQ:

4.1https://stackoverflow.com/questions/39023022/how-to-set-heap-size-in-spark-within-the-eclipse-environment

4.2https://blog.csdn.net/dounine/article/details/81637781

4.3https://stackoverflow.com/questions/28233558/spark-fails-with-classnotfoundexception-for-serializedlambda

 

 

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