同步日志到hadoop的体系结构

时间:2015-12-28 16:41:41

标签: hadoop real-time

我在一些云提供商中拥有不同的环境,例如Windows服务器,机架空间中的linux服务器,aws ..等等。并且在内部网络和内部网络之间有防火墙。

我需要构建一个实时服务器环境,其中所有新生成的IIS日志,apache日志将同步到内部大数据环境。

我知道像Splunk或Sumologic这样的工具可能有所帮助,但我们需要在开源技术中实现这一逻辑。由于防火墙的存在,我假设我只能从云提供商那里提取日志。

任何人都可以与我分享在NRT(近乎实时)同步大量日志的经验法则或通用架构是什么?我听说过Apache Flume,Kafka并想知道这些是否是必需的,或者只是使用像rsync这样的东西。

1 个答案:

答案 0 :(得分:1)

您可以使用rsync获取日志,但无法以Spark StreamingApache Storm的方式对其进行分析。

您可以继续使用这两个选项中的一个。

  1. Apache Spark Streaming + Kafka
  2. OR

    1. Apache Storm + Kakfa
    2. 看看这个article关于这两个选项的集成方法。

      查看此presentation,其中包含对Spark StreamingApache Storm的深入分析。

      性能取决于您的使用案例。 Spark Steaming is 40x faster to Storm处理。但是如果你添加" reliability"作为关键标准,在Spark Streaming处理之前,应先将数据移入HDFS。它会降低最终吞吐量。

      可靠性限制:Apache Storm

      1. 一旦处理需要持久的数据源。
      2. 至少一次处理需要可靠的数据源。
      3. 可以包装不可靠的数据源以提供额外的保证。
      4. 凭借持久可靠的资源,Storm不会丢弃数据。
      5. 常见模式:使用Apache Kafka返回不可靠的数据源(轻微延迟时间达到100%持久性)。
      6. 可靠性限制:Spark Streaming

        1. 容错和可靠性保证需要H​​DFS支持的数据源。
        2. 在流处理之前将数据移动到HDFS会引入额外的延迟。
        3. 网络数据源(Kafka等)在工作节点发生故障时容易受到数据丢失的影响。