如何将数据流式传输到EMR群集

时间:2013-12-18 21:02:29

标签: hadoop logstash amazon-emr

我很欣赏有关如何将数据从内部部署Windows服务器流式传输到持久性EMR集群的想法?

一些背景

我想运行一个运行MR作业的持久集群,就像可用的WordCount示例一样。我想将文本从本地Windows Server流式传输到群集,并让它由正在运行的作业处理。

我查看的所有流式WordCount示例始终以S3中的静态文本文件开头,并未介绍如何实现生成流的任何内容。

这需要分两部分来处理吗?

  1. 首先将数据导入S3
  2. 将其流式传输到EMR群集中?
  3. 我见过像Logstash这样的工具,它们倾向于在本地服务器上运行代理,这些代理位于博客的末尾并传输它。

    正如您可能已经知道的那样,我是一个Windows人,延伸到EMR和Linux协会。如果有一些很酷的命令行工具已经做到这一点,请随时告诉我。

    提前致谢。

3 个答案:

答案 0 :(得分:0)

目前,EMR as-is仅支持MR,Hive,Pig,HBase和Impala。 MR / Hive / Pig以批量方式处理数据,并且数据无法流式传输到它们。虽然HBase是NoSQL数据库,但Impala用于交互式即席查询。

为了处理流媒体数据,还有很多其他选项,例如StormSamzaS4。来自AWS的Kinesis最近已被移入GA。

答案 1 :(得分:0)

是的,静态文件会进入S3,然后成为EMR群集作业的输入。 但我相信你想要一个持久集群的事实意味着你从Windows服务器继续流式传输。是这样的吗? 如果需要,您需要创建AWS Kinesis Stream,配置您的生产者,通过调用Putrecord将数据放入流的分片中。 首先阅读“Developing Record Consumer Applications

答案 2 :(得分:0)

我认为您可以使用Apache Flume(https://flume.apache.org/

  

Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚集和移动大量日志数据。它具有基于流数据流的简单灵活的体系结构。它具有可调整的可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力。它使用一个简单的可扩展数据模型,允许在线分析应用程序。