Apache Spark上的EC2在迭代时大幅减速

时间:2015-04-22 00:26:01

标签: amazon-ec2 apache-spark

我有一个驱动程序,运行一组5个实验 - 基本上驱动程序只是告诉程序使用哪个数据集(其中有5个,它们非常相似)。

第一次迭代需要3.5分钟,第二次6分钟,第三次30分钟,第四次运行超过30分钟。

每次运行后,SparkContext对象停止,然后重新启动以进行下一次运行 - 我认为此方法可以防止减速,因为调用sc.stop时我感觉不到实例被清除了所有RDD数据 - 这至少是它在本地模式下的工作方式。数据集非常小,根据Spark UI,仅使用2个节点上的20Mb数据。

sc.stop不会从节点中删除所有数据吗?什么会导致这么慢?

2 个答案:

答案 0 :(得分:0)

    所有迭代完成后,
  1. 调用sc.stop。每当我们停止SparkContenxt并调用new时,需要时间来加载spark配置,jar和免费驱动程序端口来执行下一个作业。 和
  2. 使用config --executor-memory可以加快进程,具体取决于每个节点的内存量。

答案 1 :(得分:0)

愚蠢的是,我曾经使用过T2实例。它们的爆破性能意味着它们只能在很短的时间内全功率工作。彻底阅读文档 - 学到的经验教训!