Waterdrop在物联网hub日志收集中的使用

2021-02-18 19:49:29 浏览数 (1)

Waterdrop 是一个非常易用,高性能、支持实时流式和离线批处理的海量数据处理产品,架构于Apache Spark 和 Apache Flink之上。

1、 物联网数据背景

        物联网业务发展迅速,从18年开始起步近两年发展,我们接入设备量已经达到数千万级别。设备每日产生的上行下行消息量近百亿级别,服务模块之间的模调日志量更是巨大,对我们日志采集统计、实时数据分析提出更高要求。  本文主要介绍waterdrop在物联网数据采集中的使用,详细说明参见 waterdrop 文档 。

2、数据收集架构

       对于物联网数据,我们采用filebeat对各个业务服务进行日志收集到kafka,离线分析通过EMR平台存入hdfs中,实时统计通过flink来计算,还有一部分通过waterdrop消费kafka里的数据并进行数据提取,存储到clickhouse中,完成数据链路的处理。物联网数据采集架构如下。

3、Waterdrop 的特性

  • 简单易用,灵活配置,无需开发
  • 实时流式处理
  • 高性能
  • 海量数据处理能力
  • 模块化和插件化,易于扩展
  • 支持利用SQL做数据处理和聚合
  • Spark Structured Streaming
  • 支持Spark 2.x

4、环境依赖

  1. java运行环境,java >= 8
  2. 如果您要在集群环境中运行Waterdrop,那么需要以下Spark集群环境的任意一种:
  • Spark on Yarn
  • Spark Standalone
  • Spark on Mesos

5、Waterdrop配置

5.1 source插件配置

source插件支持常见组件有Es、Fake、Hive、JDBC、KafkaStream,配置说明,我们使用消费kafka配置如下:

5.2 transform插件配置

filebeat采集的业务数据进行抽取,提取出业务统计有效值并进行数据格式转换。

5.3 sink模块配置

将抽取出的数据存入到clickhouse中,参数详细说明

6、ClickHouse数据

数据提取后结果展示,可以实现业务数据数亿级别秒级查询,方便业务信息的实时统计

0 人点赞