同一群集中同步Spark流式传输和Spark批处理作业的最佳实践

时间:2015-08-12 07:46:17

标签: apache-spark cassandra apache-kafka spark-streaming

我实际上正在部署Spark / Kafka / Cassandra应用程序,而且我遇到了不同解决方案的问题,所以我在这里接受你的建议。

  1. 我有很长时间在Spark流媒体中运行应用程序,它包括处理Kafka中的Avro消息。根据消息的性质,我可以做一些不同的案例,最后在Cassandra中保存记录,所以只是这些技术的基本用例。

  2. 我有第二份工作,包括一个Spark工作,它在Cassandra中获取一些数据,做一些转换......我还没有定义工作的频率,但它将是每次1次每天一小时到一次,所以通常是一个大批量的工作。

  3. 所以我正在寻找执行批处理作业的最佳实践。由于火花流式传输作业在运行时占用了集群中的所有资源,因此我认为我有两个解决方案:

    1. 将Spark批处理包含在火花流中" micro"例如,间隔为一小时的批次 Pro:易于操作,优化资源分配 缺点:不是很干净,微批次间隔很大(在这种情况下Spark行为是什么?)

    2. 为群集中的Spark作业保留一些资源 亲:清洁
      缺点:资源分配未优化导致某些处理器暂时不会做任何事情

    3. 因此,我非常有兴趣获得您的建议以及在类似情况下获得的一些经验。

1 个答案:

答案 0 :(得分:0)

您可以在Yarn和dynamic allocation上使用on Mesos,以确保您的作业仅在需要时使用资源。