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