gpt4 book ai didi

java - 将 Java 应用程序迁移到 Hadoop : Architecture/Design Roadblocks?

转载 作者:可可西里 更新时间:2023-11-01 14:39:33 25 4
gpt4 key购买 nike

Alrite.. 所以.. 这是一种情况:我负责构建基于 Java 的 ETL 软件(更确切地说是 EAI)的迁移。我必须将其迁移到 Hadoop(apache 版本)。现在,从技术上讲,这更像是重新启动而不是迁移——因为我没有要迁移的数据库。这是关于利用 Hadoop,以便(“ETL”的)转换阶段是并行化的。这将使我的 ETL 软件,

  1. 更快 - 转换并行化。
  2. 可扩展 - 处理更多数据/大数据就是添加更多节点。
  3. 可靠 - Hadoop 的冗余性和可靠性将增加我的产品的功能。

我已经测试了这个配置 - 将我的转换算法更改为 mapreduce 模型,在高端 Hadoop 集群上对其进行了测试,并对性能进行了基准测试。现在,我正在尝试了解并记录所有可能阻碍此应用程序重新设计/研究/迁移的事情。以下是我能想到的一些:

  1. 其他两个阶段:提取和加载 - 我的 ETL 工具可以处理各种数据源 - 那么,我是否重新设计我的数据适配器以从这些数据源读取数据,将其加载到 HDFS,然后将其转换并加载到目标数据源?这一步会不会成为整个架构的巨大瓶颈?
  2. 反馈:所以我对记录的转换失败了 - 我如何让最终用户知道 ETL 在特定记录上遇到了错误?简而言之,我如何跟踪应用程序级别实际发生的所有映射/缩减/合并和排序 - 默认的 Hadoop Web 界面不适合最终用户 - 它适合管理员。那么我应该构建一个从 Hadoop Web 界面抓取的新 Web 应用程序吗? (我知道不推荐这样做)
  3. 安全性:如何处理 Hadoop 级别的授权?谁可以运行作业,谁不能运行作业 - 如何支持 ACL?

我期待收到您的来信,根据您使用 Hadoop 的经验/问题分析,回答上述问题以及我需要考虑的更多问题/事实。与往常一样,我感谢您的帮助,并提前感谢您。

最佳答案

  1. 我不认为加载到 HDFS 会成为瓶颈,因为负载分布在数据节点之间 - 因此网络接口(interface)只是瓶颈。将数据加载回数据库可能是一个瓶颈,但我认为这并不比现在更糟。我会设计作业,使其输入和输出位于 HDFS 中,然后将某种结果批量加载到数据库中。
  2. 反馈是一个有问题的点,因为实际上 MR 只有一个结果——而且是转换后的数据。所有其他技巧,如将失败的记录写入 HDFS 文件,将缺乏 MR 的“功能”可靠性,因为它是一种副作用。缓解此问题的一种方法是,您应该以为重复的失败记录做好准备的方式设计软件。还有 scoop = 专门用于在 SQL 数据库和 Hadoop 之间迁移数据的工具。 http://www.cloudera.com/downloads/sqoop/同时,我会考虑使用 HIVE - 如果您的 SQL 转换不是那么复杂 - 创建 CSV 文件并使用 Hive 进行初始预聚合可能是可行的,从而在进入(可能是单节点)数据库之前减少数据量。

关于java - 将 Java 应用程序迁移到 Hadoop : Architecture/Design Roadblocks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6257576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com