代码之家  ›  专栏  ›  技术社区  ›  Eran Harel

用于大量夜间/每小时hive/mysql数据处理的Spring批处理

  •  7
  • Eran Harel  · 技术社区  · 14 年前

    我正在寻找替换一组python ETL脚本的方法,这些脚本对大量数据执行每夜/每小时的数据汇总和统计收集。

    我想实现的是

    • 稳健性-失败的作业/步骤应自动重新启动。在某些情况下,我希望执行恢复步骤。
    • 框架必须能够从崩溃中恢复。我想这里需要一些坚持。
    • 监控-我需要能够监控工作/步骤的进度,最好查看与绩效相关的历史记录和统计数据。
    • 可追溯性-我必须能够理解执行的状态
    • 人工干预-很高兴有…能够从api/ui/命令行启动/停止/暂停作业。
    • 简单-当我介绍替代者的时候,我不喜欢看到同事生气的表情…要求有一个简单易懂的API。

    当前脚本执行以下操作:

    • 从许多机器收集文本日志,并将其推送到 Hadoop DFS。我们将来可能会使用水槽进行这一步骤(参见 http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/ )
    • 表演 Hive 对数据进行摘要查询,并将其插入(覆盖)到新的配置单元表/分区。
    • 将新的摘要数据提取到文件中,并将其加载(合并)到MySQL表中。这是以后在线报告需要的数据。
    • 对新添加的MySQL数据(从MySQL表)执行附加联接,并更新数据。

    我的想法是用Spring批处理替换脚本。我也调查过 Scriptella 但我认为这对这个案子来说太简单了。

    因为我在春季的一批文章中看到了一些不好的感觉(大部分是旧的帖子),所以我希望在这里得到一些输入。我也没有看到太多关于Spring批量和Hive集成的内容,这很麻烦。

    3 回复  |  直到 12 年前
        1
  •  3
  •   Jeff Hammerbacher    14 年前

    如果你想留在Hadoop生态系统中,我强烈建议你去看看 Oozie 自动化您的工作流程。我们(Cloudera)提供 packaged version of Oozie 你可以用来开始。看看我们最近 blog post 了解更多详细信息。

        2
  •  1
  •   dukethrash    14 年前

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

        3
  •  1
  •   sethcall    12 年前

    我已经使用了很多层叠,并且发现它非常令人印象深刻:

    Cascading

    它是一个M/R抽象层,运行在Hadoop上。