我很欣赏有关如何将数据从内部部署Windows服务器流式传输到持久性EMR集群的想法?
一些背景
我想运行一个运行MR作业的持久集群,就像可用的WordCount示例一样。我想将文本从本地Windows Server流式传输到群集,并让它由正在运行的作业处理。
我查看的所有流式WordCount示例始终以S3中的静态文本文件开头,并未介绍如何实现生成流的任何内容。
这需要分两部分来处理吗?
我见过像Logstash这样的工具,它们倾向于在本地服务器上运行代理,这些代理位于博客的末尾并传输它。
正如您可能已经知道的那样,我是一个Windows人,延伸到EMR和Linux协会。如果有一些很酷的命令行工具已经做到这一点,请随时告诉我。
提前致谢。
答案 0 :(得分:0)
目前,EMR as-is仅支持MR,Hive,Pig,HBase和Impala。 MR / Hive / Pig以批量方式处理数据,并且数据无法流式传输到它们。虽然HBase是NoSQL数据库,但Impala用于交互式即席查询。
答案 1 :(得分:0)
是的,静态文件会进入S3,然后成为EMR群集作业的输入。 但我相信你想要一个持久集群的事实意味着你从Windows服务器继续流式传输。是这样的吗? 如果需要,您需要创建AWS Kinesis Stream,配置您的生产者,通过调用Putrecord将数据放入流的分片中。 首先阅读“Developing Record Consumer Applications”
答案 2 :(得分:0)
我认为您可以使用Apache Flume(https://flume.apache.org/)
Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚集和移动大量日志数据。它具有基于流数据流的简单灵活的体系结构。它具有可调整的可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力。它使用一个简单的可扩展数据模型,允许在线分析应用程序。