摘要—随着各种传感器和云计算的使用技术已经普及,许多生命日志分析应用程序已经开发了针对老年人和儿童的安全服务。但是,很难执行实时大数据处理由于分析的计算复杂性而在云中因为流计算的有效部署方案云资源上的组件尚未得到充分调查。在这项研究中,我们提出了一个视频分析框架,该框架收集了来自多个摄像机的视频,并使用Apache对其进行分析Kafka和Apache Spark流。我们首先调查数据转移Apache Kafka的性能并检查效率群集配置和参数设置。然后我们申请根据建议的框架进行此配置并衡量数据分析吞吐量。实验结果表明总体吞吐量取决于经纪人数量存储数据的节点,数据的主题分区数,以及进行分析处理的节点数。在此外,已确认需要核数考虑有效的群集配置,并且节点之间的网络带宽成为瓶颈数据量和组件数量增加。

1、简介

随着各种传感器和云计算技术的使用,许多用于安全性的生命日志分析应用程序已经开发了针对老年人和儿童的服务。在这种类型的服务,通常由处理云中的传感器数据,因为很难通过在以下位置安装服务器和存储来执行所有分析家园。已经提出了足够的研究来分析传感器云中的数据,并提供有效分析大型数据的方法云中的少量小数据,例如Twitter的情绪分析。但是,视频分析需要不断传输大量数据,并且很难执行具有大量计算的实时处理云中的数据和数据,因为高效的部署方案云资源上的流计算组件具有没有经过充分调查。深度学习技术最近得到了发展,已经广泛用于图像和语音识别。深学习是使用多层,中级的机器学习识别神经网络并提高准确性的层和速度。许多深度学习框架,例如Chainer[1],Caffe [2]和TensorFlow [3]也被使用,但是计算负荷是这些选项的问题之一。在这项研究中,我们提出了一个视频分析框架,从多个摄像机收集视频并进行分析使用Apache Kafka和Apache Spark Streaming。阿帕奇Spark(以下称为Spark)[4]是一种高速,通用的产品大规模数据处理和Spark Streaming的引擎是它的组成部分之一。可以构造一个使用Spark Streaming和Apache Kafka的可扩展系统(以下称为Kafka),它是一种分布式消息传递系统[5]。我们使用Chainer进行分析处理,这是深度学习框架之一。在本文中,我们首先调查Apache Kafka的数据传输性能,并检查有效的群集配置和参数设置。然后,我们将此配置应用于建议的框架并测量数据分析吞吐量。实验性结果表明,总体吞吐量因在存储数据的代理节点数上,数据主题分区的数量,以及进行分析处理。另外,确认需要考虑内核数量以提高效率群集配置,以及之间的网络带宽随着数据量的增加,节点成为瓶颈组件数量增加。

2、相关技术

A.Apache Spark

Spark由加州大学伯克利分校开发是存储和处理的分布式处理框架大规模数据。MapReduce是专门的分布式批处理
Apache中使用的处理方法的处理框架Hadoop。另一方面,Spark增加了执行力通过加速输入/输出来加快整个过程的速度通过将数据存储在内存中。这种方法对于需要高响应速度的交互式处理机器学习处理,用于重复数据处理。Spark由多个组件组成,包括Spark流处理,用于处理流数据。火花流提供了流数据处理功能,该功能使用微量批处理方法;此方法重复执行批处理以几秒钟的短间隔处理或几分钟。Spark流还支持数据获取-流数据消息传递系统(如Apache)中的错误Kafka,Amazon Kinesis,Twitter和MQTT [6]基于协议支持异步通信的系统创建适用于每个数据流的应用程序更加容易。

B.阿帕奇·卡夫卡

Kafka是为收集和交付大量物品的目的高吞吐量和低延迟的数据。它是可执行的作为称为Kafka Cluster的多台服务器上的集群,以及存储由键,值和时间戳组成的流在称为主题的类别中。有两种主要类型的消息传递模型。第一种是推入式模型,其中发送端开始传输数据。第二个是拉类型模型,其中转移由接收方开始端发送数据请求。卡夫卡由生产者组成,经纪人(Kafka Cluster)和消费者,如图1所示。在生产者和生产者之间建立了一个推式模型经纪人,拉式模型将经纪人和消费者。这种结构使数据广播推式模型的多个过程及处理拉式模型的数据处理比例来实现可伸缩性。另外,由于消费者管理到达量拉类型的数据,可以执行有效的传输根据各种消费者的表现。用这些技术,卡夫卡拥有出色的速度和耐用性,它被广泛用于建立实时数据管道和流应用程序。

图2.流机器学习。

C.Chainer

Chainer是Pre-Pre开发的深度学习框架混合网络。它作为Python库提供,所有计算图的结构可以用Python描述。Chainer具有三个特征:灵活性,直观性,和高速。各种网络架构,例如卷积神经网络,递归神经网络,和递归神经网络可以轻松实现。还支持GPU。Chainer采用一种称为同时定义“运行定义”方法网络建设与学习。其他大多数框架优先在记忆中发展神经网络的整个结构,并然后根据处理。由于此“运行定义”方法是动态的定义网络,网络结构的灵活性是高,有可能解决复杂的发展迎合深度学习。另外,由于它被广泛使用可以轻松安装。

3、流机器学习

在这项研究中,我们提出了一个流处理框架其配置如图2所示。O石圆角正方形表示物理节点,绿色圆圈表示进程。上在客户端,数据通过Kafka传输;云端端使用Spark从Kafka接收数据,执行Python程序,然后调用Chainer。在Spark中,数据作为弹性分布式数据集(RDD),是基于分布式处理的对象,以便将数据读取为RDD,并将其从RDD转换为Chainer中所需的类型。我们设置用于Spark微型批次的微型批次大小处理并调用Chainer对每个分隔的数据指定时间执行预测处理。我们假设有许多客户端连接到的环境云,并通过以下方式构建可扩展的高速系统分发并执行数据存储和处理在云端。可以想象在通过使用大量节点进行数据传输。因此,我们调查卡夫卡的表现并考虑图形化以提高建议的整体吞吐量框架。

4、性能研究

kAFKA为了调查Kafka的详细性能,我们对-确保Kafka群集之间的数据传输吞吐量和消费者。我们调查性能时将生产者,经纪人和消费者合为一体节点以及将多个节点用于代理时。我们用MNIST,它是手写数字的图像数据集0到9之间的28×28像素,作为要传输的数据。的消费者仅读取数据。数据分区的数量在以下主题中指定:生成数据类别,并将数据分发到多个消费者。所用机器的性能实验中的结果如表I所示。机器,使用相同质量的所有节点,并且网络带宽为1 Gbps。

A.单节点性能

1)实验组成:实验组成图3所示。O石圆角正方形表示实际节点,绿色圆圈表示一个进程。我们与生产者,经纪人和消费者在单个节点上发送数据。分区数固定为32,的消费者从1变为16。我们转发来自生产商事先给经纪人并衡量吞吐量当消费者订阅存储在代理中的数据时。
2)实验结果:结果如图4所示。横轴显示消费者数量,垂直轴显示了使用者的总转移吞吐量,这是每个订阅的MNIST图像数第二。确认当消费者数量是8,吞吐量随着消费者数量的增加而增加增加。但是,当消费者数量为16时与8的情况相比,吞吐量没有提高。我们认为原因是1线程分配给1消费者,因为使用的机器核心数量为8。换句话说,将消费者数量设置为数量机器核心的数量使处理效率更高。图4.一个节点中Kafka的传输吞吐量。图5.使用多个性能研究中的实验组成节点。

B.使用多个节点的性能

1)实验组成:实验组成位置如图5所示。节点,绿色圆圈表示一个进程。我们测量使用者订阅数据时传输吞吐量存储在代理中,将代理数更改为1、2和4.我们使用不同的机器作为消费者,每个机器这四个节点运营着4个消费者,总共16个消费者。分区数固定为32,总吞吐量订阅分区数据时用于结果,其中分别分配了16个消费者。
2)实验结果:结果如图6所示。水平轴显示经纪人的数量,垂直轴显示已订阅的MNIST图像数到每秒。数量低时吞吐量低的经纪人数量为1,与单节点实验相比在IV-A节中进行了介绍。由于消费者在继续另一个节点,这是由网络拥塞引起的。然而,通过增加代理的数量可以提高吞吐量kers。在这里,当比较1到2个消费者时,吞吐量大约增加了1.8倍,但相比2对4个消费者而言,改善仅约1.4倍大。认为网络带宽连接节点已成为瓶颈。


图6.使用多个节点的Kafka传输吞吐量。
图7.吞吐量测量的实验组成建议的系统。
V. P的预测通过测量拟议制度

C.整体性能

我们采用从拟议系统的上一节并执行分布式通过更改经纪人和工人的数量进行处理在Spark中。所用机器的性能如下所示表I.同类节点用作Kafka的代理集群,并作为Spark集群的主服务器和工作服务器。它们之间的网络带宽为1 Gbps。


我们使用配置-比率如图7所示。存储在代理中的MNIST图像,并通过呼叫链接器。我们使用数据传输的吞吐量和认可为结果。卡夫卡的经纪人数更改为1、2和4。生产者发布数据运行与经纪人在同一节点上,共有16个生产者操作,以使生产者-经纪人路径不再是瓶颈在这个组成中。我们更改了将Spark Cluster设置为1、2和4。设置分区数分别设置为16和32,并且微批量大小设置为1秒。图8.当数量为分区设置为16。图9.当数量为分区设置为32。B.实验结果分区数设置为16时的结果是如图8所示,并显示了将其设置为32时的结果在图9。当分区数为16时工人人数为4,吞吐量不高与2名工人的情况相比有所改善。的原因这是因为所使用的机器的CPU是4核ʷ2个套接字,并且工作人员的内核总数匹配工人数为2时的分区数。也就是说,即使工人的数量比分区数,使用的工作人员核心数不会改变。此时,预测吞吐量确实由于数量的变化而没有实质性的变化经纪人,因为工人的加工是瓶颈。相反,当分区数为32时,当工人人数为总数为2的情况下与4的情况相比为4核心数与4个工作线程的分区数匹配。在另外,当工人数为4时,吞吐量高于2时。也就是说,当工人是4,经纪人是2,已确认经纪人是瓶颈。
第5页

5、相关工作

使用深度学习的许多流数据分析具有近年来进行了研究。算法和架构用于高速和高精度的深度学习研究了[7] [8] [9]。但是,这些前提是要执行在单台计算机上流式传输数据。这项研究是不同的我们考虑了总的分析通量,考虑传感器和云之间的数据传输。在另外,因为流处理是使用Spark执行的流式传输,可以使用Spark的功能。Spark Streaming已应用于各种技术。论文[10]提出DINAMITE,这是一种工具套件,可提供Spark Streaming实现的分析工具。肛门DINAMITE的ysis工具使用以下命令测量所有内存访问高级调试信息,并帮助程序员确定内存瓶颈。Chen和Bordbar使用Spark通过流式传输来解决诸如速度,可伸缩性,当前基于规则的系统的容错性用过的[11]。此外,使用Kafka和Spark进行流数据处理近年来也进行了研究[12] [13]。论文[14]设计了一种高性能的面向流的大数据处理系统,包括Kafka上的消息队列和基于Spark Streaming的处理引擎,并讨论Kafka和Spark优化系统的可扩展性流媒体。论文[15]试图发展一种分析具有内存处理能力的框架并分析结构化和非结构化Twitter数据。卡夫卡执行数据提取任务,Spark使得执行复杂的数据处理和机器学习实时算法。我们试图提高效率实时流数据分析,用于处理高负荷Kafka和Spark Streaming。

6、结论

在这项研究中,我们提出了一个视频分析框架,从多个摄像机收集视频并进行分析使用Apache Kafka和Apache Spark Streaming。我们先调查了Apache Kafka的数据传输性能并检查了有效的群集配置和参数设置。然后,我们将此配置应用于建议的框架并测量数据分析吞吐量。的实验结果表明,总体吞吐量有所不同根据存储数据的代理节点的数量,数据的主题分区数和节点数进行分析处理。另外,确认需要考虑内核数量以提高效率群集配置,以及之间的网络带宽随着数据量的增加,节点成为瓶颈组件数量增加。将来,我们将调查性能变化设置Kafka的复制并检查性能使用包括视频在内的不同数据集。