SparkStream提交任务的时候,在客户那里报了一个异常:Exception in thread “streaming-start” java.lang.StackOverflowError,详细的错误如图所示:
业务的模型是:先把数据发送到Kafka,然后SparkStream从Kafka中读取数据,就只是在启动的时候报错,经过分析,我们的原因是:第一次批量处理的数据太多,jvm堆栈没有及时回收垃圾,也可能是由于堆栈太小导致的,我们的做法是调整dirver的jvm的参数,如下所示:
详细的启动脚本如下:
spark2-submit --master yarn --deploy-mode cluster --class com.master.analysis.BizSummarySparkApp --verbose --conf spark.executor.extraJavaOptions="-Xss10m -XX:+UseConcMarkSweepGC" --driver-java-options "-Xss10m -XX:+UseConcMarkSweepGC" --driver-memory 2g --executor-memory 2g --executor-cores 1 --num-executors 3 --queue jzzx hdfs://10.202.62.60:8020/user/jzzx/spark-master-jar-with-dependencies.jar