构建集成ZooKeeper与Kafka的Spark应用时遇内存不足报错
解决Spark Driver内存不足的问题
这个错误是很典型的Spark资源配置问题——当前系统给Spark Driver分配的内存只有约253MB,而Spark启动时要求Driver内存至少达到约450MB,所以才会抛出这个参数异常。给你几个直接可行的解决办法:
方案1:在Maven执行命令中直接指定Driver内存
修改你原来的Maven命令,添加-Dspark.driver.memory参数来设置足够的内存,比如设置为512MB或者1GB,具体数值可以根据你的机器可用内存调整:
mvn clean package exec:java -Dexec.mainClass="com.iot.video.app.spark.processor.VideoStreamProcessor" -Dspark.driver.memory=512m
如果后续你的视频流处理需要更大内存,也可以把512m换成1g甚至2g,只要不超过机器的可用物理内存即可。
方案2:在Spark代码中配置Driver内存
在创建SparkConf对象的时候直接指定Driver内存参数(注意:如果命令行也设置了该参数,命令行的配置会覆盖代码中的设置):
import org.apache.spark.SparkConf; import org.apache.spark.SparkContext; public class VideoStreamProcessor { public static void main(String[] args) { SparkConf conf = new SparkConf() .setAppName("VideoStreamProcessor") .set("spark.driver.memory", "512m"); // 配置Driver内存 SparkContext sc = new SparkContext(conf); // 你的视频流处理业务逻辑... } }
额外提示
如果后续你切换到用spark-submit提交应用,也可以通过--driver-memory参数来配置:
spark-submit --class com.iot.video.app.spark.processor.VideoStreamProcessor --driver-memory 512m target/your-app-jar-file.jar
内容的提问来源于stack exchange,提问作者sgfs
相关产品推荐
相关产品推荐

