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.2https://blog.csdn.net/dounine/article/details/81637781