智能化局域网数据采集方法

文档序号:7859939阅读:618来源:国知局
专利名称:智能化局域网数据采集方法
技术领域
本发明涉及一种数据采集方法,尤其是涉及智能化局域网数据采集方法。
背景技术
现有数据采集技术3种方式(I)在Linux环境下使用rsync命令将数据采集单元的数据同步到中心数据汇总单元,即rsync数据同步法,Rsync (remote synchronize)是一款实现远程同步功能的免费软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync是用“rsync算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过SSH方式来传输文件,rsync包括如下的一些特性能更新整个目录和树和文件系统; 有选择性的保持符号链接、硬链接、文件属性、权限、设备以及时间等;对于安装来说,无任何特殊权限要求;对于多个文件来说,内部流水线减少文件等待的延时;能用rsh、SSh或直接端口做为传输端口 ;支持匿名rsync同步文件,是理想的镜像工具;(2)在每台数据采集单元安装FTP服务端程序,在中心数据汇总单元安装FTP客户端程序,中心数据汇总单元(FTP客户端)把脚本上传到数据采集单元(FTP服务端),中心数据汇总单元(FTP客户端)从各个数据采集单元(FTP服务端)下载数据,即FTP传输法,FTP客户端实现要建立两个通道,其实是两个调用了 connect函数的连接一个控制命令通道,专门用来传输一些字符串命令信息;一个数据传输通道,用来传输数据。控制命令通道一定是由客户端向服务器的连接(默认的端口是21,也可以指定端口,这要看服务器的设置),连接的过程完成了 FTP的登录。数据通道则不一定,具体哪个连哪个,与PASV命令有关。FTP断点续传的原理可分为断点下载和断点上传。所述断点下载向服务器发送“REST+本地文件长度”命令,告诉服务器,客户端要断点下载了,这时服务器还不知道客户端要下载哪个文件;要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般在下载前使用REST 100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST O表示从文件最开始处下载。REST命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作;向服务器发送“RETR+文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据;客户端定位本地文件指针(文件末尾);两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件。所述断点上传获取服务器上和本地要上传文件的同名文件大小;向服务器发送“APPE +文件名”,通知服务器,接下来从数据通道发送给你的数据要附加到这个文件末尾;定位本地文件指针(和FTP上文件大小相同的位置);从文件指针处读数据并发送。(3)以Flume为代表的分布式数据收集框架,利用Hadoop的MapReduce技术和HDFS分布式存储方案,提供了海量数据的收集方案,即Hadoop分布式数据收集框架Flume 架构由三层组成,分别为 agent, collector 和 storage。其中,agent 和 collector均由两部分组成source和sink, source是数据来源,sink是数据去向,如图I所示,其中agent :数据采集代理端!collector :数据汇总端;master :全局管理者;HDFS :分布式文件系统;agent tier :数据采集代理端层!collector tier数据汇总端层;storagetier :存储层。所述Agent层,agent是将数据源的数据发送给collector, Flume自带了很多直接可用的数据源(source),如text ( “filename” ):将文件filename作为数据源,按行发送;tail( “filename”)探测filename新产生的数据,按行发送出去;fsyslogTcp(5140):监听TCP的5140端口,并且接收到的数据发送出去;同时提供了很多 sink,如:console [ ("format")]:直接将将数据显示在桌面上;text ( “txtfile”)将数据写到文件txtfile中;dfs( “dfsfile”)将数据写到HDFS上的dfsfile文件中;syslog Tcp ( “host”,port):将数据通过TCP传递给host节点;所述collector层,collector是将多个agent的数据汇总后,加载到storage中。它的source和sink与agent类似,如图2collector层运作示例示意图,agent (host)监听TCP的5140端口接收到的数据,并发送给collector,由collector将数据加载到HDFS上;所述的Storage层,storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE, HBase 等,Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统;HIVE是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,HBase是一个分布式的、面向列的开源数据库。但实际上上述现有数据采集技术方案存在以下问题及不足rsync数据同步法1)使用rsync同步数据时,需要扫描所有文件后进行比对,然后差量传输。如果文件数量较多而且文件较大,定期扫描所有文件将很耗时也很耗系统资源。在按照表I、表2软硬件配置要求搭建的环境下,中心数据汇总单元以10秒间隔扫描4台数据采集单元中100个不同路径下的大小为IM的实时更新文本文件为例,占用中心数据汇总单元50%的CPU资源和500M的内存资源,占用数据采集单元50%的CPU资源和IOOM的内存资源。相比之下,本发明占用中心数据汇总单元10%的CPU资源和20M的内存资源,占用数据采集单元10%的CPU资源和IOM的内存资源;2)rSync只能实现定时更新,无论数据采集单元有无定义文件的更新,rsync都会按着定时任务去检查文件是否有更新,当数据文件较大时会使服务器性能下降,具体数据参考上例。FTP传输法1)从FTP服务器上检索一个文件,具体包含下面12道繁复的交换握手步骤客户端建立到FTP服务器端控制端口的TCP Socket链接,并等待TCP握手完成;客户端等待服务器端发送回执;客户端向服务器端发送用户名并等待响应;客户端向服务器端发送密码并等待响应;客户端向服务器端发送SYST命令并等待响应;客户端向服务器端发送TYPE I命令并等待响应;如果用户需要在服务器端切换目录,客户端仍然发送命令并等待响应;主动模式下,客户端需要发送PORT命令到服务器端,然后等待响应(被动模式与主动模式相反);建立数据传输链接(需要经过三次握手,建立一条TCP Socket连接);通过链接传输数据;客户端等待服务器端从控制连接发送2XX指令,以确保数据传输成功;客户端发送QUIT命令,并等待服务器响应;FTP传输法效率很低,80%的掉线率都是由此造成;2)FTP密码安全策略不完善文件传输协议(FTP)并没有对密码安全做出规定,在FTP客户端和服务器端,数据以明文的形式传输,任何对通讯路径上的路由具有控制能力的人,都可以通过嗅探获取密码和数据。虽然可以使用SSL封装FTP,但FTP是通过建立多次链接进行数据传输的,即便是保护了密码安全,也很难保护数据传输的安全性。3) ftp丢包率较高ftp在局域网中的平均丢包率在3%左右,基于TCP/IP协议,网络一旦出现丢包,对数据传输将产生致命的影响,传输速度将程指数性质的下降。因为TCP协议栈在进行重新传输时效率非常低下,如果一个数据包丢失,协议栈可能需要传输整个拥塞窗口。此外,它们还将在出现网络拥塞时呈指数回退(即减少拥塞窗口并增加重新传输定时器),这种行为在数据包丢失时受到TCP的监测,测试数据如图6。Hadoop分布式数据收集框架Flume客户端只支持java运行环境JDK1. 6,安装包大小接近2G,很占空间,安装配置过程复杂,不适于小规模快速批量部署,只要有下述任何一步错误都无法成功安装Flume,具体安装步骤如下Javal. 6安装,包括设置java环境变量,CDH3 安装,包括下载 cdh3-repository-l. 0-1. noarch, rpm,安装 createrepo,下载 CDH3将其放在 /home/res/CDH3,创建 CDH3 源库,下载 packagekit-media. repo,安装 CDH3 引入RPM-GPG-KEY-cIoudera,安装 hadoop-O. 20 包,安装包含脚本的 hadoop-O. 20-〈daemon〉包,CDH3 Component Tarball Downloads 组件下载;flume 安装(tatballs 安装法),包括下载解压flume-distribution-O. 9. 4,设置flume环境变量等。对一台计算机完成以上过程需 要大约I小时。

发明内容
I.发明要解决的技术问题针对传统数据采集方法中存在的以下问题(1)数据采集程序部署复杂耗时,安装包从几十M到几个G,部署时间超过I小时;(2)采集程序运行时占用大量系统资源,50%以上的CPU资源和50%以上的内存资源;(3)数据传输低效不安全,报文交互步骤超过10道,5%以上的丢包率,密码明文传输;(4)数据采集单元不可被中心数据汇总单元集中管理或无法进行高效管理,一旦数据采集单元出现故障只能人工重启或调试,而且往往需要借助复杂的分布式算法,例如Hadoop的ZooKeeper ;本发明提供智能化局域网数据采集方法,通过建立中心数据汇总单元与数据采集单元的SSH传输通道,完成以中心数据汇总单元为主导的动态轮询各数据采集单元的数据收集过程,可实现·数据采集程序部署简单快速,中心数据收集程序不超过1M,采集脚本大约4Kb,全部部署过程不超过30分钟;·对数据采集单元性能的影响最低,只占用中心数据汇总单元10%的CPU资源和20M的内存资源,只占用数据采集单元10%的CPU资源和IOM的内存资源; 数据传输高效安全,只需7道报文交互步骤,局域网内丢包率几乎为0,数据传输采用密文的方式;·中心数据汇总单元对数据采集单元的集中化管理,中心数据汇总单元可监控预测数据采集单元的故障,并自动对其进行智能化优化调试。2.技术方案一种局域网内智能数据采集方法,其步骤为步骤一环境准备一台中心数据汇总单元,至少一台以上数据采集单元,所述中心数据汇总单元运行数据收集程序与数据采集单元建立SSH连接并可以在数据采集单元上远程执行方法命令,利用XML文件存储各个数据采集单元的IP、机器名、数据采集路径,按照动态轮询优化算法从各个数据采集单元汇总数据,所述收集程序根据脚本模板文件和XML文件中的采集信息动态生成采集脚本;所述数据采集单元,通过运行采集脚本对定义文件的更新数据进行采集并把更新数据发送到中心数据汇总单元,同时接受中心数据汇总单元发送过来的方法命令,所述定义文件就是在中心数据汇总单元上运行的收集程序中定义好的数据采集单元中的指定采集文件。所述步骤I中的方法命令为发送脚本、删除脚本、执行脚本、停止脚本和执行Shell命令。
权利要求
1.智能化局域网数据采集方法,其步骤为 步骤一环境准备 一台中心数据汇总单元,至少一台以上数据采集单元,所述中心数据汇总单元运行数据收集程序与数据采集单元建立SSH连接并可以在数据采集单元上远程执行方法命令,利用XML文件存储各个数据采集单元的IP、机器名、数据采集路径,按照动态轮询优化算法从各个数据采集单元汇总数据,所述收集程序根据脚本模板文件和XML文件中的采集信息动态生成采集脚本,中心数据汇总单元通过收集程序获得各个数据采集单元的运行状况;所述数据采集单元,通过运行采集脚本对定义文件的更新数据进行采集并把更新数据发送到中心数据汇总单元,同时接受中心数据汇总单元发送过来的方法命令; 所述步骤I中的方法命令为发送脚本、删除脚本、执行脚本、停止脚本和执行Shell命令; 步骤二 米集流程 环境准备好后,中心数据汇总单元会按设定的时间间隔和顺序轮询所有数据采集单元,中心数据汇总单元第一次和数据采集单元建立连接时,会自动把采集脚本发送到数据采集单元并执行采集脚本,保证所有数据采集单元都正常运行着采集脚本 (1)当中心数据汇总单元轮询到数据采集单元时,先发送一个确认文件到数据采集单元的“数据传送临时文件夹”中; (2)从中心数据汇总单元发送到数据采集单元的采集脚本一方面会通过定时比较定义文件中现在的行数与上一次记录的行数的差值来监控采集脚本中规定的采集路径下的定义文件是否有更新,有更新数据就把更新数据送到“数据传送临时文件夹”;另一方面会通过文件检索命令定时检测“数据传送临时文件夹”中是否有中心数据汇总单元发送来的确认文件,一旦检测到则进行下一步; (3)数据采集单元会判断“数据传送临时文件夹”中的更新数据是否达到了可以传送的量,超过就传送更新数据到中心数据汇总单元的“数据收集临时文件夹”中,传送完后自动删除,否则发送拒绝文件到中心数据汇总单元的“数据收集临时文件夹”中; (4)中心数据汇总单元的收集程序一方面会通过文件检索方法定时检测“数据收集临时文件夹”中的临时文件,若临时文件存在则把临时文件中的数据备份到历史数据文件中,然后自动删除临时文件;另一方面会通过文件检索方法定时检测“数据收集临时文件夹”中是否有数据采集单元发送来的拒绝文件,检测到则轮询下一台数据采集单元; 步骤三动态轮询优化算法的采用 有m台数据采集单元 (a)统计一次轮询遍历后各数据采集单元的传输量Pi(i=l, -m); (b)对各数据采集单元的传输量Pi进行标准化,先计算出总的压缩份额5m和所有数据采集单元的总传输量tA,将各个数据采集单元的传输量按照5w:;£ft的比例进行压缩,I IJ I得到各数据采集单元非整数化的压缩份额n' y 再使用Q值算法将各数据采集单元非整数化的压缩份额n',整数化为Ili ; (c)计算所有数据采集单元压缩份额Ili的最小公倍数N,并算出各数据采集单元的轮N询次数*1 = —!Wi (d)根据计算出的各数据采集单元的轮询次数kp利用均散算法来设计下一个轮询周期的轮询队列。
(e )回到(I)统计上一次轮询遍历后各数据采集单元的传输量Pi。
2.根据权利要求I所述的智能化局域网数据采集方法,其特征在于所述定义文件为在中心数据汇总单元上运行的收集程序中定义好的数据采集单元中的指定采集文件。
3.根据权利要求I所述的智能化局域网数据采集方法,其特征在于所述中心数据汇总单元的操作系统采用Windows系统或Linux系统,数据采集单元的操作系统采用Windows系统或Linux系统。
全文摘要
本发明公开了智能化局域网数据采集方法,属于局域网数据采集领域。其步骤为步骤一环境准备,一台中心数据汇总单元,至少一台以上数据采集单元;步骤二采集流程,中心数据汇总单元会按设定的时间间隔和顺序轮询所有数据采集单元,中心数据汇总单元第一次和数据采集单元建立连接时,会自动把采集脚本发送到数据采集单元并执行采集脚本,保证所有数据采集单元都正常运行着采集脚本步骤三动态轮询优化算法的采用。通过本发明使得程序部署简单快速,降低对计算机系统资源的占用,数据传输高效安全,实现中心数据汇总单元对数据采集单元的集中化管理。
文档编号H04L12/24GK102801559SQ20121027636
公开日2012年11月28日 申请日期2012年8月3日 优先权日2012年8月3日
发明者王宏亮, 邱国金, 王河生, 任轩, 其他发明人请求不公开姓名 申请人:南京富士通南大软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1