LINE案例研究:使用Fluentd从批处理到流日志处理

大木行走 2019-07-01

LINE案例研究:使用Fluentd从批处理到流日志处理

用几句话:

  • 公司:LINE公司
  • 地点:日本东京
  • 用例概述:

    • Terabyte级:Fluentd用作主要数据流处理器,每天处理数TB的数据。
    • 灵活的数据处理:开发了许多自定义插件。Fluentd充满活力和开放的社区是其在LINE上取得成功的关键。
    • 将Fluentd的可扩展性提升到一个新的水平:他们的一位工程师在Fluentd之上构建了一个无模式SQL流处理引擎。

目标:近实时地汇总和处理日志数据

LINE公司以其同名的应用程序及其平台上的各种服务而闻名,面临着每天收集、存储和分析海量日志数据的挑战。当Satoshi Tagomori,他们的数据工程团队成员四年前加入公司时,他们有一个经典的Hadoop设置:他们使用Scribe日志收集器将所有东西收集到Hadoop中,并在Hadoop上运行批处理作业来处理日志。这个设置工作得很好,但Tagomori先生认为有一些改进的地方。

  • Hadoop旨在以可扩展的方式运行批处理作业,但不太适合实时的流内处理:Tagomori先生想要将一些日志处理(特别是针对固定时间窗口的处理)放入到数据收集器中,以便在日志进入时进行分析。该系统可以近乎实时地为内部利益相关者提供有关日志数据的统计数据,从而使整个公司能够更快地做出决策。
  • 通过将日志处理卸载到数据收集器,可以更好地利用Hadoop集群的资源:通过将Hadoop上的日志数据的一些批处理转换为数据收集器中的流内处理,他们将能够释放Hadoop的资源并使用它用于其他批处理作业。

Tagomori先生探索了各种选择,包括自己建造原型。最终,他找到了Fluentd并开始与社区合作。

与社区共同发展

当Fluentd于2011年10月首次推出时,它已经拥有了许多当前的主要优势:可插拔架构使其易于定制和扩展其行为、内存占用空间小、可靠的缓冲和负载平衡机制。然而,有一件事它没有,那就是性能。

“Fluentd...不是很快。”Tagomori先生回忆道,他现在是Fluentd的核心维护者。“但由于它是一个开源项目,我开始与核心开发人员合作,帮助他们对Fluentd的性能进行基准测试。在接下来的一年左右,Fluentd的性能提高了10x-15x。”

今天,Fluentd对于LINE来说非常快:他们每天使用Fluentd处理1.5TB(56亿条记录)的日志数据,在高峰时段每秒数据超过120,000条记录。此外,作为Fluentd的活跃用户,Tagomori先生已经贡献了34个插件,从HDFS输出插件到各种过滤器插件,现在在许多其他组织中使用。

“社区是我最喜欢Fluentd的地方之一。”Tagomori先生说。“我确实考虑过其他开源数据采集器,但Fluentd拥有一个充满活力的社区,可以通过坚定的承诺保持Fluentd的简单、强大和快速。此外,它的插件系统经过精心设计,使贡献变得非常容易。”

现在:在Fluentd上使用SQL进行无模式流处理

在开发了数十个插件之后,Tagomori先生开始认为他可以将Fluentd演变成一个轻量级数据流处理器。2014年5月,他推出了无模式流处理引擎Norikra,允许用户针对数据流编写SQL查询。

“Norikra可以在Fluentd上对数据流进行采样、过滤、聚合和连接。它的查询语言是SQL,所以没有特殊的DSL需要学习,你可以随时添加和删除SQL查询。Norikra已经替LINE解决了一些数据相关的挑战,允许我们直接查询数据流。”


KubeCon + CloudNativeCon和Open Source Summit大会日期:

  • 会议日程通告日期:2019 年 4 月 10 日
  • 会议活动举办日期:2019 年 6 月 24 至 26 日

KubeCon + CloudNativeCon和Open Source Summit赞助方案
KubeCon + CloudNativeCon和Open Source Summit多元化奖学金现正接受申请
KubeCon + CloudNativeCon和Open Source Summit即将首次合体落地中国
KubeCon + CloudNativeCon和Open Source Summit购票窗口,立即购票!
CNCF邀请你加入最终用户社区

相关推荐

StupidBird00 / 0评论 2020-01-11