CN111475367B - 一种Flume多线程测试的方法、系统及计算机存储介质 - Google Patents
一种Flume多线程测试的方法、系统及计算机存储介质 Download PDFInfo
- Publication number
- CN111475367B CN111475367B CN202010174779.4A CN202010174779A CN111475367B CN 111475367 B CN111475367 B CN 111475367B CN 202010174779 A CN202010174779 A CN 202010174779A CN 111475367 B CN111475367 B CN 111475367B
- Authority
- CN
- China
- Prior art keywords
- file
- flash
- multithreading
- destination
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012360 testing method Methods 0.000 title claims abstract description 31
- 230000005540 biological transmission Effects 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 12
- 210000000056 organ Anatomy 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种Flume多线程测试的方法、系统及计算机存储介质,方法包括创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;持续抓取文件,将所述文件内容追加至目标文件中;通过flume的agent1将目标文件传输至多线程kafka生产者;通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;根据目的地接收到的文件信息判断flume多线程传输功能。不仅验证Insight平台Flume组件具有多线程传输功能,而且还支持大批量数据传输,提高了测试效率,节约人力资源,为集群的Flume多线程测试提供了保证和依据。
Description
技术领域
本发明涉及计算机技术领域,尤其是一种Flume多线程测试的方法、系统及计算机存储介质。
背景技术
Flume是一种分布式、可靠且可用的服务,用于有效地收集、聚合和移动大量日志数据。flume最新版本是1.9.0,是Apache的顶级项目,它具有基于流数据的简单灵活的体系结构,具有可调整的可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力,但是flume是单线程传输,并不支持多线程传输。
为适应大数据潮流,云海Insight平台开发了flume多线程传输,从而缓解在大数据量的情况下系统传输压力。但是针对其测试,需要每秒钟均持续不断的向flume发送数据,且需要经过kafka多线程通道将大批量数据发送给flume,但目前kafka无法直接读取本地的大批量文件,故测试过程复杂繁琐,需要进行多项配置,很是耗时耗力。
发明内容
本发明提供了一种Flume多线程测试的方法、系统及计算机存储介质,用于解决现有针对flume多线程传输测试过程复杂繁琐的问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种Flume多线程测试的方法,所述方法包括以下步骤:
创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;
持续抓取文件,将所述文件内容追加至目标文件中;
通过flume的agent1将目标文件传输至多线程kafka生产者;
通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;
根据目的地接收到的文件信息判断flume多线程传输功能。
进一步地,通过循环语句不断读取文件,使目标文件持续输入数据。
进一步地,所述agent1和agent2为flume的独立进程,包括数据源、通道及目的地;所述agent1的数据源为taildir,通道为file,目的地为kafka生产者;所述agent2的数据源为kafka消费者,通道为file,目的地为hdfs。
进一步地,所述kafka生产者的线程个数与file通道的线程个数一致。
进一步地,所述通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地的具体过程为:
通过kafka消费者消费kafka生产者所产生的消息,经过多线程file通道,将目标文件下沉至多线程hdfs中。
进一步地,所述根据目的地接收到的文件信息判断flume多线程传输功能的具体过程为:
若目的地接收到文件信息,则判定flume具备多线程传输功能,否则判定flume不具备多线程传输功能。
本发明第二方面提供了一种Flume多线程测试的系统,所述系统包括:
主题创建单元,用于创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;
数据生成单元,持续抓取文件,将所述文件内容追加至目标文件中;
第一数据传输单元,通过flume的agent1将目标文件传输至多线程kafka生产者;
第二数据传输单元,通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;
结果分析单元,根据目的地接收到的文件信息判断flume多线程传输功能。
本发明第三方面提供了一种计算机存储介质,所述计算机存储介质中存储有计算机指令,所述计算机指令在flume多线程测试系统上运行时,使所述flume多线程测试系统执行所述的flume多线程测试方法。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明针对flume的大数据量多线程传输,通过持续不断的cat一个小文件,将其追加到目标文件中,最终生成所述的大批量测试数据源,通过flume的Taildir Source将测试数据通过file多线程通道发送给kafka多线程Source;第通过kafka多线程Sink接收到第二步的数据,最终经过多线程选择器发送到相应的目的地。不仅验证Insight平台Flume组件具有多线程传输功能,而且还支持大批量数据传输,提高了测试效率,节约人力资源,为集群的Flume多线程测试提供了保证和依据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法的流程示意图;
图2是本发明进行多线程传输的原理示意图;
图3是本发明所述系统的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明Flume多线程测试的方法,包括以下步骤:
S1,创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;
S2,持续抓取文件,将所述文件内容追加至目标文件中;
S3,通过flume的agent1将目标文件传输至多线程kafka生产者;
S4,通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;
S5,根据目的地接收到的文件信息判断flume多线程传输功能。
步骤S1中,在root用户下,执行自动化shell脚本AutoTest_Flume.sh,通过kafka命令提前创建所需topic。topic是kafka消息传输主题,发送者和消费者通过同一个主题来传输数据。
在内部测试时,是没有真实数据持续产生的,所以只能人工创建所需数据。为了实现数据能够持续不断且大量的产生,步骤S2中所采用的方法是通过循环语句不断地读取某一个小文件,将其内容追加到另一个目标文件中,如此便能保证目标文件一直在持续不断的输入大量的数据。
Agent1和agent2为flume的独立进程,包括数据源、通道及目的地;agent1的数据源为taildir,通道为file,目的地为kafka生产者;agent2的数据源为kafka消费者,通道为file,目的地为hdfs。
步骤S3中,通过agent1将目标文件传输至多线程kafka中。其中数据源类型为taildir,该数据类型会持续不断的读取目标文件,如图2所示,然后经过多线程file通道,线程个数可以通过配置自定义,最终传输至多线程kafka生产者中。Kafka的多线程个数尽量和通道的多线程个数保持一致,但线程个数并不是越多越好,根据硬件配置,在本案例中,线程数为3-6这样能最大的利用资源。
步骤S4中,通过agent2将目标文件最终下沉至目的地,比如hdfs。在前面的步骤中,目标文件已传输至kafka生产者中,所以这里采用kafka多线程消费者去消费生产者所产生的消息,然后经过多线程通道,最终将目标文件下沉至多线程hdfs中。大规模数据能够通过自定义的多线程flume最终传输到另一个地方,这就说明flume多线程这个功能起作用了。
步骤S5中,若目的地接收到文件信息,则判定flume具备多线程传输功能,否则判定flume不具备多线程传输功能。同时将测试过程及测试记过记录在log文件中。
如图3所示,本发明Flume多线程测试的系统包括主题创建单元1、数据生成单元2、第一数据传输单元3、第二数据传输单元4和结果分析单元5。
主题创建单元1用于创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;数据生成单元2持续抓取文件,将所述文件内容追加至目标文件中;第一数据传输单元3通过flume的agent1将目标文件传输至多线程kafka生产者;第二数据传输单元4通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;结果分析单元5根据目的地接收到的文件信息判断flume多线程传输功能。
本发明还提供了一种计算机存储介质,计算机存储介质中存储有计算机指令,计算机指令在flume多线程测试系统上运行时,使flume多线程测试系统执行flume多线程测试方法。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (7)
1.一种Flume多线程测试的方法,其特征是,所述方法包括以下步骤:
创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;
持续抓取文件,将所述文件内容追加至目标文件中;
通过flume的agent1将目标文件传输至多线程kafka生产者;
通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;
根据目的地接收到的文件信息判断flume多线程传输功能;
所述agent1和agent2为flume的独立进程,包括数据源、通道及目的地;所述agent1的数据源为taildir,通道为file,目的地为kafka生产者;所述agent2的数据源为kafka消费者,通道为file,目的地为hdfs。
2.根据权利要求1所述Flume多线程测试的方法,其特征是,通过循环语句不断读取文件,使目标文件持续输入数据。
3.根据权利要求1所述Flume多线程测试的方法,其特征是,所述kafka生产者的线程个数与file通道的线程个数一致。
4.根据权利要求1所述Flume多线程测试的方法,其特征是,所述通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地的具体过程为:
通过kafka消费者消费kafka生产者所产生的消息,经过多线程file通道,将目标文件下沉至多线程hdfs中。
5.根据权利要求1所述Flume多线程测试的方法,其特征是,所述根据目的地接收到的文件信息判断flume多线程传输功能的具体过程为:
若目的地接收到文件信息,则判定flume具备多线程传输功能,否则判定flume不具备多线程传输功能。
6.一种Flume多线程测试的系统,其特征是,所述系统包括:
主题创建单元,用于创建消息传输主题,数据发送者和消费者通过所述主题进行数据传输;
数据生成单元,持续抓取文件,将所述文件内容追加至目标文件中;
第一数据传输单元,通过flume的agent1将目标文件传输至多线程kafka生产者;
第二数据传输单元,通过flume的agent2将kafka生产者内的目标文件下沉至多线程目的地;
结果分析单元,根据目的地接收到的文件信息判断flume多线程传输功能;
所述agent1和agent2为flume的独立进程,包括数据源、通道及目的地;所述agent1的数据源为taildir,通道为file,目的地为kafka生产者;所述agent2的数据源为kafka消费者,通道为file,目的地为hdfs。
7.一种计算机存储介质,所述计算机存储介质中存储有计算机指令,其特征是,所述计算机指令在flume多线程测试系统上运行时,使所述flume多线程测试系统执行如权利要求1-5任一项所述的Flume 多线程测试的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174779.4A CN111475367B (zh) | 2020-03-13 | 2020-03-13 | 一种Flume多线程测试的方法、系统及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174779.4A CN111475367B (zh) | 2020-03-13 | 2020-03-13 | 一种Flume多线程测试的方法、系统及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475367A CN111475367A (zh) | 2020-07-31 |
CN111475367B true CN111475367B (zh) | 2023-01-06 |
Family
ID=71747418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010174779.4A Active CN111475367B (zh) | 2020-03-13 | 2020-03-13 | 一种Flume多线程测试的方法、系统及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475367B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259195B (zh) * | 2021-05-10 | 2022-07-05 | 中国人民解放军63660部队 | 一种消息中间件性能测试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590072A (zh) * | 2017-08-30 | 2018-01-16 | 深圳乐信软件技术有限公司 | 一种应用开发和测试的方法和装置 |
CN110647407A (zh) * | 2019-08-30 | 2020-01-03 | 北京浪潮数据技术有限公司 | 一种数据配置方法和系统 |
-
2020
- 2020-03-13 CN CN202010174779.4A patent/CN111475367B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590072A (zh) * | 2017-08-30 | 2018-01-16 | 深圳乐信软件技术有限公司 | 一种应用开发和测试的方法和装置 |
CN110647407A (zh) * | 2019-08-30 | 2020-01-03 | 北京浪潮数据技术有限公司 | 一种数据配置方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111475367A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534699B2 (en) | Method, device and computer program product for executing test cases | |
CN109086199B (zh) | 一种自动化生成测试脚本的方法、终端和可存储介质 | |
CN108196915B (zh) | 基于应用容器引擎的代码处理方法、设备及存储介质 | |
AU2017238638A2 (en) | Tools and methods for real-time dataflow programming language | |
US9519535B1 (en) | Two stage log normalization | |
US20130081001A1 (en) | Immediate delay tracker tool | |
CN111221793B (zh) | 数据挖掘方法、平台、计算机设备及存储介质 | |
Samosir et al. | An evaluation of data stream processing systems for data driven applications | |
CN111475367B (zh) | 一种Flume多线程测试的方法、系统及计算机存储介质 | |
CN111324526A (zh) | 接口测试系统、方法和服务器 | |
CN114398179B (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
CN114090378A (zh) | 一种基于Kapacitor的自定义监控告警方法 | |
CN115145683A (zh) | 云服务实现方法及装置 | |
CN111966653A (zh) | 微服务调用链路数据处理方法、装置、服务器及存储介质 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN112765246A (zh) | 任务处理方法、装置、电子设备和存储介质 | |
US8752026B2 (en) | Efficient code instrumentation | |
CN111258802A (zh) | 捕获应用程序崩溃信息的方法及相关设备 | |
CN110019045B (zh) | 日志落地方法及装置 | |
CN113031969B (zh) | 设备部署巡检方法、装置、计算机设备及存储介质 | |
Ramanan et al. | ~ PB&J~-Easy Automation of Data Science/Machine Learning Workflows | |
US20100228748A1 (en) | Data subset retrieval from a queued message | |
CN113240088A (zh) | 文本意图识别模型的训练方法 | |
CN111796983B (zh) | 一种体彩异常交易请求的监控系统及方法 | |
CN116382333B (zh) | 一种卫星指令的编排方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |