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

标签 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 集成我也没怎么看,比较麻烦。

最佳答案

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

关于mysql - Spring-Batch 用于大规模夜间/每小时 Hive/MySQL 数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495100/

相关文章:

mysql - 从子查询中排除记录

ms-access - 为什么我不能以编程方式复制锁定的 .mdb,但我可以通过资源管理器复制它?

python - 将 Glue ETL 作业加载到雪花中时出错

hadoop - Hadoop中的HBASE和HDFS有什么区别?

hadoop - 自连接时 hive 处理缓慢

hadoop - 使用Multiple Outputs Mapreduce将数据写入多个文件

sql - 外涂雪花

mysql - mysql 中的列的字符串值 : '\xF0\x9F\x92\x8F\x0A#. ..不正确?

java - 尝试从现有项目生成变更日志文件时出现错误 "Table name pattern can not be NULL or Empty"

php - SQL查询优化转换