1.一种基于Spark平台的Spark Streaming异常温度数据报警方法,其特征在于:利用kafka作为消息队列服务器,不断地接受物联网传感器传递来的数据流,SparkStreaming把接收的数据流分成数据块存放在Spark Streaming的数据块队列中,并且在一定的批处理时间间隔对数据块队列中的数据进行批处理,Spark通过任务调度器对批处理的数据块进行计算,筛选出异常温度数据,并把计算结果存入数据库中;
其处理数据具体流程如下:
步骤1:初始化——创建一个StreamingContext对象,该对象中的参数包括:SparkContext和批处理时间两个,对批处理时间这个参数进行设置,具体包括:
1)StreamingContext中的批处理时间设置为8s;
2)如果提交的数据流未被快速处理,数据滞留,减少批处理时间;
3)如果提交的数据流很快被处理,当前又没有数据流进入,处理时间过快,增加批处理时间;
4)重复步骤2)和步骤3)操作,直到数据流进入Spark中,Spark刚好处理结束上一个作业,从而找出合理的批处理时间;
步骤2:加载温度数据;
创建createStream,Receiver被调起执行;
连接ZooKeeper,读取相应的Consumer、Topic配置信息,通过consumerConnector连接到kafka集群,收取kafka队列中相应topic的数据;
创建KafkaMessageHandler线程池来对温度数据进行处理 ,通过ReceiverInputDStream中的方法,将数据转换成BlockRDD,供后续计算;
步骤3:异常温度数据检测:
Spark Streaming把从kafka队列中的topic数据的每行字符串解析出的温度数据,转换为Double型,分而治之,将同一个topic中的温度放入一个组中,设定一个温度阈值,统计每组出现的大于和小于温度阈值的异常温度数据的次数,如果出现异常数据,就向外发出异常警报;
步骤4:数据存储:
使用创建的SparkContext对象中的saveAstextFile()函数将获取的异常温度数据和次数存入到Orancle数据库中,以方便web端的查询和访问。
2.根据权利要求1所述的基于Spark平台的Spark Streaming异常温度数据报警方法,其特征在于,所述温度阈值设置为25~40摄氏度。