Hadoop可以做流式传输吗?

时间:2018-04-06 19:26:07

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

有人建议Hadoop做流媒体,并引用Flume和Kafka作为例子。

虽然我知道他们可能有流媒体功能,但我想知道他们是否可以像Storm / Spark / Flink这样的流处理技术被认为是同一个联盟。 Kafka是一个“发布 - 订阅模型消息系统”,Flume是一种数据提取工具。即使他们与hadoop互动/整合,他们在技术上是'hadoop'本身的一部分吗?

PS:我知道有Hadoop Streaming这是完全不同的事情。

1 个答案:

答案 0 :(得分:1)

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

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

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

Kafka Connect 本质上是一个Kafka频道,以Flume术语表示。存在各种插件用于从不同的“源”读取,产生到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这样的BigData空间(参见SMACK stack)

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

相关问题