为什么具有一个工作节点和四个执行器(每个执行器具有一个核心)的Spark不能处理自定义接收器??
如果执行器在Spark Streaming中只有一个核心,那么不通过Custom Receiver处理传入数据的原因是什么?
我在独立模式下运行Spark。我正在Spark Streaming应用程序中的自定义接收器中获取数据。我的笔记本电脑有4个核心。
master="spark://lappi:7077"
$spark_path/bin/spark-submit--执行器核心1--执行器总核心4\--class"my.class.path.App"\--master$master
您指出您的(1)执行器应该为Spark保留1个内核,这意味着您使用了4个内核中的1个。参数total-executor-cores
从不受限制,因为它限制了集群上为Spark保留的内核总数,根据您以前的设置,它是1。
Receiver使用一个线程来消耗可用线程中的数据,这意味着您没有剩余的核心来处理数据。所有这些都在文档中进行了解释:https://spark.apache.org/docs/latest/streaming-programming-guide.html#input-数据流和接收器
您希望将executor-cores
参数提高到4。