在当前技术领域,使用 Apache Kafka 加载 HDFS 的选项/解决方案有哪些?
我在这里寻找 Kafka 消费者端的选项。还在寻找每天至少扩展到几 TB 的东西。
我还有一些基本要求:a) HDFS 的输出应该是分区的。 b) Kafka 上的记录可能不严格按时间顺序排列,但输出应该(尽可能)按时间顺序排列。 c) 在系统中断(网络分区、sw/hw 崩溃等)的情况下可靠
我浏览了 StackOverflow,但许多问答都已过时。因此这个问题。
最佳答案
在 Confluent HDFS Connector 之前,有一个名为 Camus 的产品,您仍然可以在 LinkedIn Github 下找到它。该项目已移至 Apache Gobblin 项目。
就您可能发现的过时帖子而言,Apache Flume 或 Storm 仍然存在,并且似乎是 Cloudera 环境的唯一内置流选项。
Hortonworks 提供 Apache Nifi
Streamsets 提供了一个 Cloudera 包裹。
Flink 和 Spark 可以工作,但需要一定程度的知识才能可靠地扩展、维护和调试这些自定义流程(与 Connect、Camus/Gobblin、Flume 中的简单配置文件相比)。
根据您的环境中可用的选项,虽然我个人对 Fluentd 或 Logstash 没有太多经验,但我知道它们有 Kafka 和 HDFS 配置选项
根据我的工作经验,Connect & Camus 提供了最灵活的分区选项(即使您需要自己添加自定义分区程序,分区程序界面也非常简单)。 Flume 可能是类似的,不过,我没有用过它。
Nifi 和 Streamsets 不需要部署任何 JAR 文件,这有它的好处。
Storm/Spark/Flink当然都需要以创建分区的方式编写。
可靠性和交付保证应通过抵消管理和主题保留在代理和消费者端部分处理。一般来说,大部分的消费进程都会给你“至少一次”的消费
关于hadoop - 使用 Kafka 加载 HDFS 有哪些选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866072/