【问题标题】:Can Hadoop do streaming?Hadoop 可以做流式处理吗?
【发布时间】:2018-04-06 19:26:06
【问题描述】:

有人建议Hadoop做流式处理,并引用了Flume和Kafka作为例子。

虽然我知道它们可能具有流式传输功能,但我想知道它们是否可以与 Storm/Spark/Flink 等流式处理技术处于同一级别。 Kafka 是一个“发布-订阅模型消息系统”,Flume 是一个数据摄取工具。即使它们与 hadoop 交互/集成,它们在技术上是“hadoop”本身的一部分吗?

PS:我知道Hadoop Streaming 是完全不同的东西。

【问题讨论】:

    标签: hadoop apache-kafka streaming flume stream-processing


    【解决方案1】:

    Hadoop 只有 YARN、HDFS 和 MapReduce。作为一个项目,它不适应(接近)实时的摄取或处理。

    Hadoop Streaming 是一种用于在文件系统流(标准输入/输出)之间操作数据的工具

    Kafka 不仅仅是一个发布/订阅消息队列。

    Kafka Connect 在 Flume 术语中本质上是一个 Kafka 通道。存在各种插件,用于从不同的“源”读取,生成到 Kafka,然后存在“接收器”以从 Kafka 消费到数据库或文件系统。从消费者的角度来看,这比在您的基础设施中部署的单个 Flume 代理更具可扩展性。如果您正在寻找将日志摄取到 Kafka 中的所有内容,我个人认为 Filebeat 或 Fluentd 比 Flume 更好(没有 Java 依赖项)。

    Kafka Streams 是与 Storm、Flink 和 Samza 相媲美的产品,只是不存在对 YARN 或任何集群调度程序的依赖,并且可以在任何 JVM 中嵌入 Kafka Streams 处理器兼容的应用程序(例如,Java Web 应用程序)。在不引入对某些外部系统的依赖的情况下,尝试使用 Spark 或 Flink 执行此操作会遇到困难。

    我发现 Flume、NiFi、Storm、Spark 等的唯一好处是它们恭维 Kafka,并且它们具有 Hadoop 兼容 集成以及用于像 Cassandra 这样的大数据空间(参见 SMACK 堆栈)

    因此,要回答这个问题,您需要使用其他工具来允许 Hadoop 处理和存储流数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      相关资源
      最近更新 更多