【发布时间】:2013-05-25 11:36:22
【问题描述】:
我在通过 spark-ec2.sh 脚本设置的 EC2 集群上运行 Spark。我启动的 5 个从属实例总共有 40 个核心,但每个实例无法利用所有核心。
从从属日志中,我可以看到从属似乎是一个接一个地执行任务。我在从属实例上运行 top,cpu 大约是 100% 而不是 800%。
我已开启 spark.mesos.coarse 模式。并且数据被分成40个块。当我在本地以独立模式运行 Spark 时,它可以使用 8 个内核。
我可以做些什么来让 Spark 从站利用所有可用的内核?
【问题讨论】:
-
spark.mesos.coarse仅在 Mesos 下运行时影响 Spark。你是在 Mesos 下运行 Spark 还是使用 Spark 的独立模式(如果你使用 Spark 0.7+,默认的 EC2 脚本使用独立模式)。 -
感谢@JoshRosen,及时回复。我使用的是 0.7,所以它应该是独立模式。我想使用 Spark 进行实时查询,响应时间在 1~2 秒内。有可能吗?
-
Spark 绝对能够进行低延迟查询;这是 Shark 和 Spark Streaming 的基础。未充分利用可能是由于您的工作没有足够的并行性或由于局部性限制。你能提供更多关于你的工作的细节吗?另外,考虑在spark-users 邮件列表上发布这个问题。该列表比 StackOverflow 更适合来回调试讨论。
标签: amazon-ec2 mapreduce apache-spark