7

我正在考虑替换一堆 Python ETL 脚本,这些脚本执行每晚/每小时的数据摘要和对大量数据的统计收集。

我想要实现的是

  • 鲁棒性 - 失败的作业/步骤应自动重新启动。在某些情况下,我想改为执行恢复步骤。
  • 框架必须能够从崩溃中恢复。我想这里需要一些坚持。
  • 监控 - 我需要能够监控作业/步骤的进度,最好查看有关性能的历史记录和统计信息。
  • 可追溯性 - 我必须能够了解执行的状态
  • 手动干预 - 很高兴...能够从 API / UI / 命令行启动/停止/暂停作业。
  • 简单——当我介绍替代品时,我不想让我的同事生气……拥有一个简单易懂的 API 是必需的。

当前脚本执行以下操作:

  • 从多台机器收集文本日志,并将它们推送到Hadoop DFS。我们将来可能会在这一步中使用 Flume(参见http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/)。
  • 对数据执行Hive汇总查询,并插入(覆盖)到新的 Hive 表/分区。
  • 将新的汇总数据提取到文件中,然后加载(合并)到 MySql 表中。这是稍后在线报告所需的数据。
  • 对新添加的 MySql 数据(来自 MySql 表)执行附加连接,并更新数据。

我的想法是用 spring-batch 替换脚本。我也研究了Scriptella,但我认为这对于这种情况来说太“简单”了。

因为我在 Spring-Batch 上看到了一些不好的感觉(主要是旧帖子),所以我希望在这里得到一些输入。我也没有看到太多关于 spring-batch 和 Hive 集成的东西,这很麻烦。

4

3 回答 3

3

如果您想留在 Hadoop 生态系统中,我强烈建议您查看Oozie以自动化您的工作流程。我们 (Cloudera) 提供了Oozie 的打包版本,您可以使用它开始使用。有关更多详细信息,请参阅我们最近的博客文章

于 2010-10-04T11:26:27.527 回答
1

为什么不使用JasperETLTalend?似乎是适合这项工作的工具。

于 2010-09-27T16:17:30.300 回答
1

I've used Cascading quite a bit and found it be quite impressive:

Cascading

It is a M/R abstraction layer, and runs on Hadoop.

于 2012-04-21T21:01:48.980 回答