论文部分内容阅读
[摘 要]随着计算机信息技术的快速发展,大数据时代已经来临,在该背景下,人们对数据流处理实时性提出了更高的要求,数据计算对持续性和可靠性提出了更高的要求。通过对分布式数据处理流系统的合理应用,能够完成对大数据环境的数据流处理,并且具有良好的实时处理能力。因此,加强对该项内容的分析是必要的。
[关键词]大数据环境;分布式数据流;处理技术
中图分类号:TM917 文献标识码:A 文章编号:1009-914X(2018)21-0145-01
大数据背景下,数据的具体来源已经不再是人们关心的一项问题,如何从大量的数据中,快速、准确的挖掘出人们所需要的信息内容才是关键,这也是数据分析过程中面临的一项难题。从实际分析情况来看,单机系统已经无法满足海量数据分析要求,如何解决该问题是人们需要深入探讨的一项内容。
1、消息队列管理技术
离线数据处理系统中,只需要对数据进行汇总到中央存储系统中,然后定期对汇总后的数据进行处理即可。在数据流处理系统中,因为会有数据不断流入,要通过合理的方式实时处理新增的数据。数据流处理系统与理想数据处理系统相比,在系统中只需要利用一个消息队列系统,便可充当数据缓冲区,通过对该区域进行应用,一方面可以快速收集系统发送的大量数据;另一方面,当数据处理系统处理能力未满负载时,应当尽快将数据发送给数据流处理系统,而如果处理系统处于满载,此时可以对接收到的数据内容进行缓存处理[1]。下面针对目前常用的一种消息队列系统进行详细介绍。
Kafka作为运营数据管道和活动流的一项重要基础,在2010年就已经处于开源状态,通过近几年的发展,目前其已经被广泛的应用在数据管道和消息系统等不同的应用领域中[2]。Kafka在消息列队系统中应用,具有如下特点:
(1)高吞吐量,能够在低性能的设备中应用,读写速度能够达到每秒数十万消息的读写。
(2)支持水平拓展,系统在具体运行过程中,如果集群吞吐量无法满足相应的使用需求,在具体操作过程中,只需要依据实际情况,适当的增加相应的设备,便可使吞吐量近似一条线性增长。
(3)具有不错的容错,无论消息是否被消费掉,都可以对数据进行存储,并且可以完成对消息内容的多次读取,同时也可以将消息内容合理的拷贝在不同的计算机上,通过该方式,能够实现数据的冗余。
(4)确保消息的有序性,对消息内容进行分区存储,可以保证每个分区中的数据的具体消费都能够被有序进行。
Kafka中的每一条消息属于某一个特定的主题(Topic),而一个Topic则是某一类消息的具体分组,并且要依据消息的Topic完成相应的分区,并且要分散到不同服务器的具体日志文件中,然后严格的依据相应的顺序进行存储。每条消息所在的文件中都会有一个不断处于增长状态的长整型偏移量(offset),通过对offset进行应用,可以对一条消息内容进行位移标识[3]。虽然,Kafka是将大量的数据存储到相应的磁盘中,但是磁盘的读写速度很快,甚至会超过内存的随机读取速度,由此可见,Kafka可以确保各项信息内容的快速读取。
2、分布式流式处理技术
实时对数据进行收集与汇总,最终形成相应的数据流,为了在短时间内获取到实施应用系统需要的各项数据,需要数据分析系统能够快速的完成对原始数据内容的分析与处理。大数据时代已经来临,在该背景下,单台服务器已经无法满足短时间内大量的数据计算要求,同时考虑数据和业务的增长速度相对较快,因此要数据分析系统本身应当具有不错的拓展性[4]。下面针对一种主流分布式数据处理系统进行重点分析。
Flink起源于一个项目研究,2014年被Apache 孵化器接收,并且在短时间内成为了一项顶级项目。Flink是一个可以同时适用于数据流和批处理的分布式处理引擎,该内容体现了一种先进的设计理念。数据处理应当为流式,而批处理则是流处理中的一个特例,也就说,在具体问题分析过程中,可以将所有的任务都当作流处理,这也是Flink的一个重要特点。不同节点间的数据传输可以分为以下两种情况:
(1)流处理。针对实时达到数据流的节点上处理后,系统在具体运行过程中,可以将处理后的结果缓存到当前节点中,同时在该过程中,可以将数据传输到后续的相应节点上,再进行下一步处理,在得到最终结果前,要不断重复该流程[5]。
(2)批处理。现阶段节点会将需要进行处理的各项数据内容进行逐条处理,并且完成序列转换,然后存储起来,但是在该过程中,并不会立刻将处理后的结果发送给下一个节点,如果出现缓存不足的情况,将会是数据持久化到相应的磁盘上,只有对所有的数据内容都完成相应的处理后,才会将处理后的数据,传输下一个节点,该传输过程中利用网络完成。Flink 通过设置缓存数据的超时时间,同时对应流处理和批处理系统,如果超时时长为0,则执行流处理,若超时时长无限大,则执行批处理。除此之外,还可以通过设置超时时间的长短,达到调节流处理延时的最终目的。
3、数据流处理未来面临的挑战
虽然数据流处理技术近几年得到了改进,但是大数据时代的到来,体现出了新的特征,面向大数据的流处理技术仍然面临许多挑战,主要体现在以下几个方面:
(1)处理结构。Lamba作为一种架构,其被分解为批處理层、服务层、流处理层,通过对该结构的应用,能够完成对任意数据上函数计算问题。例如,在批处理层中,整合了Hadoop,而在流处理层中则整合了Storm,系统具有容错、可扩展等特点。
(2)数据特征。在大数据时代背景下,数据会随着时间的推移不断改变,因此,数据流处理技术要能够适应该特征,并且在一些特殊情况下,要能够发现数据内容的具体改变,从而使其作用能够得到充分发挥。
(3)数据压缩。在对大量数据进行处理过程中,要对数据存储空间问题进行重点考虑分析,目前常用的方法为无损压缩和代表性数据采样法[6]。前者消耗的时间较多,但是消耗的空间较少,可以将其看做一种用时间换空间的方法,后者在具体应用过程中虽然可以减少在空间上的开销,但是有可能会丢失信息,在未来的研究过程中,应当结合两种方法,设计出一种专用的压缩技术。
(4)数据发现。现阶段,无结构和无标注数据的应用越来越广泛,并且起到的作用也更加明显。目前大量的有用数据都未被标注,因此,面向大数据的流处理在未来的一段时间,应当进行具有针对性的数据发现和处理技术设计。
4、结束语:
大数据时代的来临,会大幅度加快数据的增长速度,数据的种类会变得更多,如何对这些数据进行合理处理,已经成为人们重点研究的一项内容。本文主要针对消息队列管理技术进行了介绍,并且在此基础上,对分布式流式处理技术进行了详细阐述,最终对未来面临的挑战进行了总结。
参考文献
[1] 朱蔚林,木伟民,金宗泽,等.基于MR的高可靠分布式数据流统计模型[J/OL].计算机技术与发展,2018(01):1-10.
[2] 易佳,薛晨,王树鹏.分布式流数据加载和查询技术优化[J].计算机科学,2017,44(05):172-177.
[3] 段英杰.基于分布式处理技术探讨物联网数据库的设计要点[J].无线互联科技,2016(02):39-41.
[4] 徐花芬,毛国君,吴静.分布式数据流分类关键技术研究[J].华北科技学院学报,2015,12(04):119-124.
[5] 王春凯,孟小峰.分布式数据流关系查询技术研究[J].计算机学报,2016,39(01):80-96.
[6] 马元文,王鹏,周之敏,等.一种自适应的分布式数据流处理调整技术[J].计算机工程,2015,41(12):15-20+25.
[关键词]大数据环境;分布式数据流;处理技术
中图分类号:TM917 文献标识码:A 文章编号:1009-914X(2018)21-0145-01
大数据背景下,数据的具体来源已经不再是人们关心的一项问题,如何从大量的数据中,快速、准确的挖掘出人们所需要的信息内容才是关键,这也是数据分析过程中面临的一项难题。从实际分析情况来看,单机系统已经无法满足海量数据分析要求,如何解决该问题是人们需要深入探讨的一项内容。
1、消息队列管理技术
离线数据处理系统中,只需要对数据进行汇总到中央存储系统中,然后定期对汇总后的数据进行处理即可。在数据流处理系统中,因为会有数据不断流入,要通过合理的方式实时处理新增的数据。数据流处理系统与理想数据处理系统相比,在系统中只需要利用一个消息队列系统,便可充当数据缓冲区,通过对该区域进行应用,一方面可以快速收集系统发送的大量数据;另一方面,当数据处理系统处理能力未满负载时,应当尽快将数据发送给数据流处理系统,而如果处理系统处于满载,此时可以对接收到的数据内容进行缓存处理[1]。下面针对目前常用的一种消息队列系统进行详细介绍。
Kafka作为运营数据管道和活动流的一项重要基础,在2010年就已经处于开源状态,通过近几年的发展,目前其已经被广泛的应用在数据管道和消息系统等不同的应用领域中[2]。Kafka在消息列队系统中应用,具有如下特点:
(1)高吞吐量,能够在低性能的设备中应用,读写速度能够达到每秒数十万消息的读写。
(2)支持水平拓展,系统在具体运行过程中,如果集群吞吐量无法满足相应的使用需求,在具体操作过程中,只需要依据实际情况,适当的增加相应的设备,便可使吞吐量近似一条线性增长。
(3)具有不错的容错,无论消息是否被消费掉,都可以对数据进行存储,并且可以完成对消息内容的多次读取,同时也可以将消息内容合理的拷贝在不同的计算机上,通过该方式,能够实现数据的冗余。
(4)确保消息的有序性,对消息内容进行分区存储,可以保证每个分区中的数据的具体消费都能够被有序进行。
Kafka中的每一条消息属于某一个特定的主题(Topic),而一个Topic则是某一类消息的具体分组,并且要依据消息的Topic完成相应的分区,并且要分散到不同服务器的具体日志文件中,然后严格的依据相应的顺序进行存储。每条消息所在的文件中都会有一个不断处于增长状态的长整型偏移量(offset),通过对offset进行应用,可以对一条消息内容进行位移标识[3]。虽然,Kafka是将大量的数据存储到相应的磁盘中,但是磁盘的读写速度很快,甚至会超过内存的随机读取速度,由此可见,Kafka可以确保各项信息内容的快速读取。
2、分布式流式处理技术
实时对数据进行收集与汇总,最终形成相应的数据流,为了在短时间内获取到实施应用系统需要的各项数据,需要数据分析系统能够快速的完成对原始数据内容的分析与处理。大数据时代已经来临,在该背景下,单台服务器已经无法满足短时间内大量的数据计算要求,同时考虑数据和业务的增长速度相对较快,因此要数据分析系统本身应当具有不错的拓展性[4]。下面针对一种主流分布式数据处理系统进行重点分析。
Flink起源于一个项目研究,2014年被Apache 孵化器接收,并且在短时间内成为了一项顶级项目。Flink是一个可以同时适用于数据流和批处理的分布式处理引擎,该内容体现了一种先进的设计理念。数据处理应当为流式,而批处理则是流处理中的一个特例,也就说,在具体问题分析过程中,可以将所有的任务都当作流处理,这也是Flink的一个重要特点。不同节点间的数据传输可以分为以下两种情况:
(1)流处理。针对实时达到数据流的节点上处理后,系统在具体运行过程中,可以将处理后的结果缓存到当前节点中,同时在该过程中,可以将数据传输到后续的相应节点上,再进行下一步处理,在得到最终结果前,要不断重复该流程[5]。
(2)批处理。现阶段节点会将需要进行处理的各项数据内容进行逐条处理,并且完成序列转换,然后存储起来,但是在该过程中,并不会立刻将处理后的结果发送给下一个节点,如果出现缓存不足的情况,将会是数据持久化到相应的磁盘上,只有对所有的数据内容都完成相应的处理后,才会将处理后的数据,传输下一个节点,该传输过程中利用网络完成。Flink 通过设置缓存数据的超时时间,同时对应流处理和批处理系统,如果超时时长为0,则执行流处理,若超时时长无限大,则执行批处理。除此之外,还可以通过设置超时时间的长短,达到调节流处理延时的最终目的。
3、数据流处理未来面临的挑战
虽然数据流处理技术近几年得到了改进,但是大数据时代的到来,体现出了新的特征,面向大数据的流处理技术仍然面临许多挑战,主要体现在以下几个方面:
(1)处理结构。Lamba作为一种架构,其被分解为批處理层、服务层、流处理层,通过对该结构的应用,能够完成对任意数据上函数计算问题。例如,在批处理层中,整合了Hadoop,而在流处理层中则整合了Storm,系统具有容错、可扩展等特点。
(2)数据特征。在大数据时代背景下,数据会随着时间的推移不断改变,因此,数据流处理技术要能够适应该特征,并且在一些特殊情况下,要能够发现数据内容的具体改变,从而使其作用能够得到充分发挥。
(3)数据压缩。在对大量数据进行处理过程中,要对数据存储空间问题进行重点考虑分析,目前常用的方法为无损压缩和代表性数据采样法[6]。前者消耗的时间较多,但是消耗的空间较少,可以将其看做一种用时间换空间的方法,后者在具体应用过程中虽然可以减少在空间上的开销,但是有可能会丢失信息,在未来的研究过程中,应当结合两种方法,设计出一种专用的压缩技术。
(4)数据发现。现阶段,无结构和无标注数据的应用越来越广泛,并且起到的作用也更加明显。目前大量的有用数据都未被标注,因此,面向大数据的流处理在未来的一段时间,应当进行具有针对性的数据发现和处理技术设计。
4、结束语:
大数据时代的来临,会大幅度加快数据的增长速度,数据的种类会变得更多,如何对这些数据进行合理处理,已经成为人们重点研究的一项内容。本文主要针对消息队列管理技术进行了介绍,并且在此基础上,对分布式流式处理技术进行了详细阐述,最终对未来面临的挑战进行了总结。
参考文献
[1] 朱蔚林,木伟民,金宗泽,等.基于MR的高可靠分布式数据流统计模型[J/OL].计算机技术与发展,2018(01):1-10.
[2] 易佳,薛晨,王树鹏.分布式流数据加载和查询技术优化[J].计算机科学,2017,44(05):172-177.
[3] 段英杰.基于分布式处理技术探讨物联网数据库的设计要点[J].无线互联科技,2016(02):39-41.
[4] 徐花芬,毛国君,吴静.分布式数据流分类关键技术研究[J].华北科技学院学报,2015,12(04):119-124.
[5] 王春凯,孟小峰.分布式数据流关系查询技术研究[J].计算机学报,2016,39(01):80-96.
[6] 马元文,王鹏,周之敏,等.一种自适应的分布式数据流处理调整技术[J].计算机工程,2015,41(12):15-20+25.