Spring-Batch用于大规模的夜间/小时Hive/MySQL数据处理

Era*_*rel 7 mysql hadoop etl hive spring-batch

我正在考虑更换一堆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集成,这很麻烦.

Jef*_*her 3

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