Spring-Batch每小时一次的Hive/MySQL数据处理
我正在寻找替换一堆执行夜间/小时数据汇总和大量数据统计收集的Python ETL脚本。Spring-Batch每小时一次的Hive/MySQL数据处理
我想达成什么是
- 鲁棒性 - 一个失败的作业/步应自动重新启动。在某些情况下,我想执行恢复步骤。
- 框架必须能够从崩溃中恢复。我想这里需要一些持久性。
- 监控 - 我需要能够监控作业/步骤的进度,并且最好查看关于性能的历史和统计数据。
- 可追溯性 - 我必须能够理解执行的状态
- 手动干预 - 很高兴能...能够从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的整合,这很麻烦。
如果您希望保留在Hadoop生态系统中,我强烈建议您检查Oozie以使您的工作流程自动化。我们(Cloudera)提供了一个packaged version of Oozie,您可以使用它来开始。请参阅我们最近的blog post了解更多详情。
谢谢杰夫。 Oozie与Hive和MySql集成吗? – 2010-10-04 13:43:09
是的。在与CDH打包的Oozie版本中有Hive和Sqoop操作。 Sqoop将允许您使用MySQL执行导入和导出。要对存储在MySQL中的数据运行查询,可以使用Java操作(http://yahoo.github.com/oozie/releases/2.2.0/WorkflowFunctionalSpec.html#a3.2.7_Java_Action)和JDBC驱动程序来提交查询。 – 2010-10-05 09:24:02
再次10X,我会考虑它 – 2010-10-05 12:19:14
感谢参考@sethcall。我们最终使用比Oozie更灵活的弹簧批次。 – 2012-04-22 10:25:03
两个垒球问题:你觉得学习曲线可以接受吗?你使用它有什么成效吗? (我问,因为级联+ hadoop,对于新手来说,没有经过认真考虑就没有什么可跳跃的,这是坚实的技术,很好地解决了一个非常复杂的问题,但带着一些包袱) – sethcall 2012-04-22 18:38:29
我一直在使用Spring很长一段时间,所以学习曲线不成问题。我们更关心Spring与现有系统和代码库的集成,Spring很容易解决这个问题。我真的很感激这个参考。我甚至不知道它:) – 2012-04-23 18:38:10
这些剧本出生于罪恶之中。我知道,我写了他们:) – Yossale 2010-09-23 14:29:24
为你的遗留@yossale打个招呼 – 2010-09-23 18:19:55
只要我不是那个必须修复它的人.. :) – Yossale 2010-09-24 14:36:14