hadoop - 将数据从 RDBMS 加载到具有多个目的地的 Hadoop

标签 hadoop streaming apache-kafka sqoop

我们已经实现了一个解决方案,使用 Sqoop 将数据从 RDBMS 加载到我们的 hadoop 集群,对于仅附加数据,它会转到 hive,而维度数据会转到 hbase。

现在我们搭建了两个相同的Hadoop集群,它们互为备份集群。我们希望一次将数据从 RDBMS 加载到两个集群。 Sqoop 不允许我们这样做。我们已经看到了一些流式解决方案,例如 streamsets 或 nifi,它们允许从一个地方提取数据并将其一次发送到多个目的地。此外,我们正在考虑使用 sqoop 将数据加载到一个集群,然后设置一个同步作业以定期将数据复制到另一个集群,考虑到我们拥有的数据量很大,这听起来更合适。

有人可以分享一些这方面的真实生活经验吗?

最佳答案

我看到两个选项:

  • 设置两个不同的 Sqoop 作业以复制到每个集群中。这更像是两组事件数据而不是备份,因为两者都是从源更新的。这将在关系数据库系统上造成额外的过载,因为将创建 x2(大约)个连接来进行数据复制。

  • 使用单个 Sqoop 作业将数据加载到一个集群中。使用 distcp -update(或)distcp -append 从那里复制到其他集群。这种方法的几个优点:

    • 这应该会减少关系数据库系统的负载。

    • 您可以利用 MR 的强大功能来更快地复制数据黑白集群。

    • 您可以选择使用 Oozie 安排备份频率。

    • 您可以处理事件副本或备份副本。

让我知道您的想法,如果您已经确定任何解决方案,请分享。

关于hadoop - 将数据从 RDBMS 加载到具有多个目的地的 Hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851413/

相关文章:

hadoop - 无法通过 -kill 命令终止 oozie 作业

java - 如何让kafka在java程序中消耗滞后

hadoop - Storm : Kafka to HDFS - dependency jar issues

java - Hadoop 配置 - 集群

azure - 从群集访问Blob存储中的文件

hadoop - 在多节点 Cassandra 集群上运行 pig

C#捕获互联网音频流

ubuntu - gstreamer rtp 流媒体网络摄像头

c++ - 当覆盖 << (流)运算符时,调试会进入 std 的 << impl 吗?

java - Spring Boot 中的 Kafka 配置类找不到 keystore 或信任库