将日志同步到hadoop的实时体系结构

ej83mcc0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(394)

我有一个不同的环境跨越一些云提供商,如windows服务器,linux服务器在机架空间,aws…等。在它和内部网络之间有一个防火墙。
我需要构建一个实时服务器环境,所有新生成的iis日志、apache日志都将同步到一个内部大数据环境。
我知道有些工具,如splunk或sumologic,可能会有所帮助,但我们必须在开源技术中实现这种逻辑。由于防火墙的存在,我假设我只能从云提供商那里拉日志而不是推。
有人能和我分享一下nrt(近实时)中同步大量日志的经验法则或通用架构吗?我听说过apacheflume和kafka,我想知道这些是必需的还是仅仅是使用rsync之类的东西的问题。

2exbekwf

2exbekwf1#

您可以使用rsync来获取日志,但不能以这种方式分析它们 Spark Streaming 或者 Apache Storm 做。
你可以选择这两个选项中的一个。 Apache Spark Streaming + KafkaApache Storm + Kakfa 看看这篇关于这两个选项的集成方法的文章。
看看这个演示文稿,它涵盖了对 Spark Streaming 以及 Apache Storm .
性能取决于您的用例。 Spark Steaming is 40x faster to Storm 处理。但如果你加上 reliability “作为关键标准,那么数据应该首先移动到hdfs中,然后再通过spark流处理。这将降低最终吞吐量。
可靠性限制:apache storm
一次处理需要一个持久的数据源。
至少一次处理需要可靠的数据源。
可以 Package 不可靠的数据源以提供额外的保证。
有了持久可靠的数据源,storm不会丢失数据。
常见模式:使用ApacheKafka备份不可靠的数据源(以较小的延迟命中换取100%的持久性)。
可靠性限制:Spark流
容错和可靠性保证需要hdfs支持的数据源。
在流处理之前将数据移动到hdfs会引入额外的延迟。
如果工作节点发生故障,网络数据源(kafka等)很容易丢失数据。

相关问题