流采集与处理--华为FusionInsight--华为开发者社区

流采集与处理
功能特点

Flume数据采集

利用分布式数据采集软件Flume从网络信令镜像系统采集A、Gn口的原始信令(一般几十个字段),完成预处理,然后保存到Kafka的“topicX”中。

Kafka数据分发

Kafka是一个分布式的,基于发布/订阅的消息系统。采集到的数据存储在Hadoop Kafka系统中,可将数据分顺序发到多个组件中使用。

Spark数据计算

CAE利用Spark Streaming(下简称为Spark)作为流计算系统,快速完成数据累加,分类等计算,生成业务所需数据,并保存到Kafka的topic中。

兼容开源框架

提供统一IDE开发环境,兼容多个开源流计算框架。

功能视图
功能描述
  • 基本术语介绍收起
    • 事件

      事件就是指外部数据源传入的基础消息,在电信网络中,用户的任何行为都可以记录为一次事件,例如,一次呼叫就是一个事件。

      流数据采集

      流采集是通过Hadoop的flume部件进行实时事件的采集,可定制Flume采集规则。如事件从哪采集,采集后存放在哪儿,是否需要做预处理等。

      流数据分发

      将采集到的流数据存储到公共位置,在按需分发到各业务系统或中间件中,CAE中通过Hadoop的kafka部件进行实时事件的分发,业务系统或中间件可订阅Kafka中的数据。

      流数据计算

      在CAE系统中,使用Hadoop的spark进行数据计算。Spark Rule表示计算规则,可二次也可使用CAE系统预置的规则。Spark Task表示可在Yarn运行的一个Spark Streaming计算实例,一般附有Task ID。Task可被提交、停止、查询。任务状态有正在提交、已提交、正在运行、正在停止、已停止等。

  • 基本概念介绍展开
    • 逻辑架构

      管理节点(CAE Server):管理中心,提供接口供外部系统调用来配置流计算业务,提供IDE开发采集、管理流处理的逻辑。

      数据采集:采用Flume作为分布式采集系统。并预置多个数据拦截器到Flume中,可定制采集业务所需的数据。

      实时分发:采用Kafka作为数据分发系统。支撑实时计算处理节点的集群分发,可水平扩展。

      计算处理:采用Spark Streaming计算平台,可定制开发运算任务。

      数据采集

      利用分布式数据采集软件Flume从网络信令镜像系统采集A,Gn口的原始信令(一般几十个字段),完成预处理(比如数据标准化“手机号码去86”、多余字段过滤等),然后保存到Kafka的“topicX”中。

      数据分发

      采集到的数据存储在Hadoop Kafka系统中,可将数据分顺序发到多个组件中使用。

      Kafka介绍

      Broker:Kafka集群包含一个或多个服务器,这种服务器被称为Broker。

      Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同的Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

      Partition:每个Topic包含一个或多个partition,创建Topic时可指定Partition数量。每个Partition对应于一个文件夹,该文件夹下存储该partition的数据和索引文件。

      Producer:消息生产者。负责发布消息到Kafka Broker。

      Consumer:消息消费者。可以从Kafka的Topic里获得消息。

      数据计算

      利用Hadoop Spark Streaming作为流计算系统,快速完成数据累加,分类等计算,生成业务所需数据,并保存到Kafka的Topic中。

      Spark Streaming介绍

      SparkStreaming将连续的数据流切分成一个个小批量数据集,然后逐个提交为Spark计算任务,最终持续得到每个批次的计算结果。

  • 功能特性展开
    • 事件管理中心

      管理事件分类,查询事件,创建事件,使用“预置事件工具”批量编辑和导入事件。

      流采集编排

      1.配置Source:目前支持Spooling Directory(定制支持压缩文件读取),Avro,Sdtp、FTP/SFTP。

      2.配置channel:目前支持Memory Channel、File Channel。

      3.配置数据拦截器:

      CAE定制开发了多种拦截器,举例如下

      - 字段投影,只采集业务所需的字段

      - 字段过滤,根据字段值过滤

      - 字段转换,将字段值通过函数运算后输出

      - 字段加密,字段值加密后输出

      - 字段标准化,如手机号码+86.日期字段统一格式

      4.配置Sink:目前支持kafka和HDFS

      5.配置Selector(可选):配置不同Channel对应的Sink。

      6.配置Sink Group(可选):配置多个Sink到一个组中,处理一个Channel的数据。

      CAE中的IDE界面中配置

      流计算编排

      提供流计算Rule编辑界面,可图形化配置流计算的名称、描述、计算规则。计算规则中可选择:

      1.计算数据来源(Source):Kafka、Socket。

      2.计算方式(Interceptor):投影、过滤、关联回填、分组。

      3.结果数据的存放位置(Sink):Kafka、HDFS。

      流计算管理

      1.可定制开发Spark运算任务

      Spark任务规则开发流程:

      - 开发Spark任务规则,入口类实现sdk SparkApplication参数检测接口。

      - 若任务结果输出到Kafka或者Oracle,可以参考使用sdk中已经封装好的任务输出接口。

      - 使用Rest API发起启动、查询、停止任务。

      Spark任务部署方法:

      将jar包与配置信息相关的xml文件压缩为Zip包,再通过CAE前台界面导入。

      2.可使用CAE中预置的Spark运算任务