CN103997438A - 一种云计算中自动监控分布式网络爬虫的方法 - Google Patents

一种云计算中自动监控分布式网络爬虫的方法 Download PDF

Info

Publication number
CN103997438A
CN103997438A CN201410241378.0A CN201410241378A CN103997438A CN 103997438 A CN103997438 A CN 103997438A CN 201410241378 A CN201410241378 A CN 201410241378A CN 103997438 A CN103997438 A CN 103997438A
Authority
CN
China
Prior art keywords
task
log
runapps
nutch
daily record
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.)
Pending
Application number
CN201410241378.0A
Other languages
English (en)
Inventor
范莹
于治楼
梁华勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Group Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201410241378.0A priority Critical patent/CN103997438A/zh
Publication of CN103997438A publication Critical patent/CN103997438A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种云计算中自动监控分布式网络爬虫的方法,属于一种云计算技术,一种云计算中自动监控分布式网络爬虫的方法,通过脚本和轮询实现实时监控nutch任务,执行并自动启动下一步操作;由两个脚本实现,脚本Ⅰ是循环执行多个抓取周期,每个周期中顺序执行每一步任务,并将执行情况写入日志;脚本Ⅱ是使用crond实时监控任务是否在执行,如果终止,检查上一步执行情况,将中断信息发送邮件给运维人员,并自动启动下一步任务继续执行。本发明通过脚本和轮询实现实时监控nutch任务执行,并自动启动下一步操作;数据抓取时间,使用方便。

Description

一种云计算中自动监控分布式网络爬虫的方法
 
技术领域
本发明涉及一种云计算技术,具体地说是一种云计算中自动监控分布式网络爬虫的方法。
背景技术
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算是通过网络提供可伸缩的廉价的分布式计算能力。
云计算为物联网所产生的海量数据提供了很好的存储空间,并使得实时在线处理成为可能。云计算是实现物联网的核心,运用云计算模式使得物联网中各类物品的实时动态管理和智能分析变得可能。云计算为物联网提供了可用、便捷、按需的网络访问,如果没有这个工具,物联网产生的海量信息无法传输、处理和应用。
hadoop是云计算技术的重要组成部分,它是目前云计算、大数据解决方案中最为流行和最为稳定的工具,是一个能够对大量数据进行分布式处理的软件框架。Nutch是与Hadoop结合最好的分布式网络爬虫软件,所谓网络爬虫是一个自动提取网页的程序,它是搜索引擎的重要组成。Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch主要分为两个部分:爬虫crawler和查询searcher,Crawler主要用于从网络上抓取网页并为这些网页建立索引,Searcher主要利用这些索引检索用户的查找关键词来产生查找结果。两者之间的接口是索引,所以除去索引部分,两者之间的耦合度很低。Nutch的一步式抓取命令Crawler在执行时,经常中断。而按Nutch一个抓取周期的分步任务顺序generate、fetch、parse、updatedb单步执行则不会产生这个问题。但是分单步抓取需要实时关注任务的状态,在上一任务结束时手动启动下一任务。这种方式过于占用人力,而且在很容易出现一段时间任务停止而没被发现,从而浪费数据抓取时间。
发明内容
本发明的技术任务是提供一种通过脚本和轮询实现实时监控nutch任务执行,并自动启动下一步操作的一种云计算中自动监控分布式网络爬虫的方法。
本发明的技术任务是按以下方式实现的,一种云计算中自动监控分布式网络爬虫的方法,通过脚本和轮询实现实时监控nutch任务,执行并自动启动下一步操作;由两个脚本实现,脚本Ⅰ是循环执行多个抓取周期,每个周期中顺序执行每一步任务,并将执行情况写入日志;脚本Ⅱ是使用crond实时监控任务是否在执行,如果终止,检查上一步执行情况,将中断信息发送邮件给运维人员,并自动启动下一步任务继续执行,具体流程为:
(1)、开始,每分钟执行一次获取是否有正在执行的nutch任务;
(2)、如果没有执行nutch任务,将相关信息发送邮件给运维人员;
(3)、从日志runapps.log中获取已经运行的周期数;
(4)、若已经运行的周期数没有执行完指定循环数,从日志runapps.log中获取当前未结束的批次batchid,从日志runapps.log中获取上一步任务名称;
(5)、若上一步任务名称为generate,则nutch获取,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为fetch,则nutch解析,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为parse,则nutch更新,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为updatedb,则nutch启动下一步任务继续执行。
脚本Ⅰ的伪代码如下,crawl.sh
for((i=$1;i<$2;i++))
do
   将时间和i写入日志runapps.log
   nutch generate -topN 2
   任务内容和结束时间写入日志runapps.log
   获取generate生成的 batchid
   将batchid写入日志runapps.log
   nutch fetch $batchid -threads 2
   任务内容和结束时间写入日志runapps.log
   nutch parse $batchid
   任务内容和结束时间写入日志runapps.log
   nutch updatedb
   任务内容和结束时间写入日志runapps.log
Done。
脚本Ⅱ的伪代码如下,poll.sh:
isrunning=获取是否有正在执行的nutch任务
if [  $isrunning=没有 ] 
   将相关信息发送邮件给运维人员
   depth=从runapps.log中获取已经运行的周期数
   if [ $depth没有执行完指定循环数N ] 
   then 
      batchid=从runapps.log中获取当前未结束的batchid
      preappnm=从runapps.log中获取上一步任务名称
      时间写入日志
      if [ $preappnm = 'generate' ];then
        nutch fetch $batchid -threads 2
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'fetch' ];then
        nutch parse $batchid
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'parse' ];then
        nutch updatedb
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'updatedb' ];then
        $depth++
        crawl.sh $depth N
      fi
fi;
poll.cron:*/1 * * * * /usr/hadoop/script/poll.sh。
名词解释:
脚本:(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
Crond:crond是crontab的守护进程。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
本发明的一种云计算中自动监控分布式网络爬虫的方法具有以下优点:通过脚本和轮询实现实时监控nutch任务执行,并自动启动下一步操作;数据抓取时间,使用方便。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种云计算中自动监控分布式网络爬虫的方法的流程图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种云计算中自动监控分布式网络爬虫的方法作以下详细地说明。
实施例1:
本发明的一种云计算中自动监控分布式网络爬虫的方法,通过脚本和轮询实现实时监控nutch任务,执行并自动启动下一步操作;由两个脚本实现,脚本Ⅰ是循环执行多个抓取周期,每个周期中顺序执行每一步任务,并将执行情况写入日志;脚本Ⅱ是使用crond实时监控任务是否在执行,如果终止,检查上一步执行情况,将中断信息发送邮件给运维人员,并自动启动下一步任务继续执行,具体流程为:
(1)、开始,每分钟执行一次获取是否有正在执行的nutch任务;
(2)、如果没有执行nutch任务,将相关信息发送邮件给运维人员;
(3)、从日志runapps.log中获取已经运行的周期数;
(4)、若已经运行的周期数没有执行完指定循环数,从日志runapps.log中获取当前未结束的批次batchid,从日志runapps.log中获取上一步任务名称;
(5)、若上一步任务名称为generate,则nutch获取,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为fetch,则nutch解析,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为parse,则nutch更新,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为updatedb,则nutch启动下一步任务继续执行。
实施例2:
本发明的一种云计算中自动监控分布式网络爬虫的方法,通过脚本和轮询实现实时监控nutch任务,执行并自动启动下一步操作;由两个脚本实现,脚本Ⅰ是循环执行多个抓取周期,每个周期中顺序执行每一步任务,并将执行情况写入日志;脚本Ⅱ是使用crond实时监控任务是否在执行,如果终止,检查上一步执行情况,将中断信息发送邮件给运维人员,并自动启动下一步任务继续执行,具体流程为:
(1)、开始,每分钟执行一次获取是否有正在执行的nutch任务;
(2)、如果没有执行nutch任务,将相关信息发送邮件给运维人员;
(3)、从日志runapps.log中获取已经运行的周期数;
(4)、若已经运行的周期数没有执行完指定循环数,从日志runapps.log中获取当前未结束的批次batchid,从日志runapps.log中获取上一步任务名称;
(5)、若上一步任务名称为generate,则nutch获取,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为fetch,则nutch解析,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为parse,则nutch更新,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为updatedb,则nutch启动下一步任务继续执行。
脚本Ⅰ的伪代码如下,crawl.sh
for((i=$1;i<$2;i++))
do
   将时间和i写入日志runapps.log
   nutch generate -topN 2
   任务内容和结束时间写入日志runapps.log
   获取generate生成的 batchid
   将batchid写入日志runapps.log
   nutch fetch $batchid -threads 2
   任务内容和结束时间写入日志runapps.log
   nutch parse $batchid
   任务内容和结束时间写入日志runapps.log
   nutch updatedb
   任务内容和结束时间写入日志runapps.log
Done。
脚本Ⅱ的伪代码如下,poll.sh:
isrunning=获取是否有正在执行的nutch任务
if [  $isrunning=没有 ] 
   将相关信息发送邮件给运维人员
   depth=从runapps.log中获取已经运行的周期数
   if [ $depth没有执行完指定循环数N ] 
   then 
      batchid=从runapps.log中获取当前未结束的batchid
      preappnm=从runapps.log中获取上一步任务名称
      时间写入日志
      if [ $preappnm = 'generate' ];then
        nutch fetch $batchid -threads 2
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'fetch' ];then
        nutch parse $batchid
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'parse' ];then
        nutch updatedb
        任务内容和结束时间写入日志runapps.log
      elif [ $preappnm = 'updatedb' ];then
        $depth++
        crawl.sh $depth N
      fi
fi;
poll.cron:*/1 * * * * /usr/hadoop/script/poll.sh。
将poll.cron添加至crontab,启动crond service即可。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种云计算中自动监控分布式网络爬虫的方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (3)

1.一种云计算中自动监控分布式网络爬虫的方法,其特征在于通过脚本和轮询实现实时监控nutch任务,执行并自动启动下一步操作;由两个脚本实现,脚本Ⅰ是循环执行多个抓取周期,每个周期中顺序执行每一步任务,并将执行情况写入日志;脚本Ⅱ是使用crond实时监控任务是否在执行,如果终止,检查上一步执行情况,将中断信息发送邮件给运维人员,并自动启动下一步任务继续执行,具体流程为:
(1)、开始,每分钟执行一次获取是否有正在执行的nutch任务;
(2)、如果没有执行nutch任务,将相关信息发送邮件给运维人员;
(3)、从日志runapps.log中获取已经运行的周期数;
(4)、若已经运行的周期数没有执行完指定循环数,从日志runapps.log中获取当前未结束的批次batchid,从日志runapps.log中获取上一步任务名称;
(5)、若上一步任务名称为generate,则nutch获取,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为fetch,则nutch解析,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为parse,则nutch更新,并将任务内容和结束时间写入日志runapps.log;若上一步任务名称为updatedb,则nutch启动下一步任务继续执行。
2.根据权利要求1所述的一种云计算中自动监控分布式网络爬虫的方法,其特征在于脚本Ⅰ的伪代码如下,crawl.sh
for((i=$1;i<$2;i++))
do
       将时间和i写入日志runapps.log
       nutch generate -topN 2
       任务内容和结束时间写入日志runapps.log
       获取generate生成的       batchid
       将batchid写入日志runapps.log
       nutch fetch $batchid -threads 2
       任务内容和结束时间写入日志runapps.log
       nutch parse $batchid
       任务内容和结束时间写入日志runapps.log
       nutch updatedb
       任务内容和结束时间写入日志runapps.log
Done。
3.根据权利要求1所述的一种云计算中自动监控分布式网络爬虫的方法,其特征在于脚本Ⅱ的伪代码如下,poll.sh:
isrunning=获取是否有正在执行的nutch任务
if [  $isrunning=没有 ] 
       将相关信息发送邮件给运维人员
       depth=从runapps.log中获取已经运行的周期数
       if [ $depth没有执行完指定循环数N ] 
       then 
              batchid=从runapps.log中获取当前未结束的batchid
              preappnm=从runapps.log中获取上一步任务名称
              时间写入日志
              if [ $preappnm = 'generate' ];then
                     nutch fetch $batchid -threads 2
                     任务内容和结束时间写入日志runapps.log
              elif [ $preappnm = 'fetch' ];then
                     nutch parse $batchid
                     任务内容和结束时间写入日志runapps.log
              elif [ $preappnm = 'parse' ];then
                     nutch updatedb
                     任务内容和结束时间写入日志runapps.log
              elif [ $preappnm = 'updatedb' ];then
                     $depth++
                     crawl.sh $depth N
              fi
fi。
CN201410241378.0A 2014-06-03 2014-06-03 一种云计算中自动监控分布式网络爬虫的方法 Pending CN103997438A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410241378.0A CN103997438A (zh) 2014-06-03 2014-06-03 一种云计算中自动监控分布式网络爬虫的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410241378.0A CN103997438A (zh) 2014-06-03 2014-06-03 一种云计算中自动监控分布式网络爬虫的方法

Publications (1)

Publication Number Publication Date
CN103997438A true CN103997438A (zh) 2014-08-20

Family

ID=51311447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410241378.0A Pending CN103997438A (zh) 2014-06-03 2014-06-03 一种云计算中自动监控分布式网络爬虫的方法

Country Status (1)

Country Link
CN (1) CN103997438A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912934A (zh) * 2016-04-20 2016-08-31 迅鳐成都科技有限公司 一种面向数据产权保护的反内爬访控方法
CN106874487A (zh) * 2017-02-21 2017-06-20 国信优易数据有限公司 一种分布式爬虫管理系统及其方法
CN107908794A (zh) * 2017-12-15 2018-04-13 广东工业大学 一种数据挖掘的方法、系统、设备及计算机可读存储介质
CN108667918A (zh) * 2018-04-25 2018-10-16 青岛海信移动通信技术股份有限公司 一种设备状态监控方法及装置
CN112395158A (zh) * 2020-11-17 2021-02-23 北京乐我无限科技有限责任公司 一种信息处理方法、装置及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054472A1 (en) * 2010-03-25 2012-03-01 International Business Machines Corporation Automatic identification of bottlenecks using rule-based expert knowledge
CN102902703A (zh) * 2012-07-19 2013-01-30 中国人民解放军国防科学技术大学 一种面向网络敏感信息的截图取证与锁定回访的方法
CN103092999A (zh) * 2013-02-22 2013-05-08 人民搜索网络股份公司 一种网页抓取周期调整方法和装置
CN103248625A (zh) * 2013-04-27 2013-08-14 北京京东尚科信息技术有限公司 一种网络爬虫运行异常监控方法和系统
CN103530390A (zh) * 2013-10-22 2014-01-22 北京奇虎科技有限公司 网页抓取的方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054472A1 (en) * 2010-03-25 2012-03-01 International Business Machines Corporation Automatic identification of bottlenecks using rule-based expert knowledge
CN102902703A (zh) * 2012-07-19 2013-01-30 中国人民解放军国防科学技术大学 一种面向网络敏感信息的截图取证与锁定回访的方法
CN103092999A (zh) * 2013-02-22 2013-05-08 人民搜索网络股份公司 一种网页抓取周期调整方法和装置
CN103248625A (zh) * 2013-04-27 2013-08-14 北京京东尚科信息技术有限公司 一种网络爬虫运行异常监控方法和系统
CN103530390A (zh) * 2013-10-22 2014-01-22 北京奇虎科技有限公司 网页抓取的方法及设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912934A (zh) * 2016-04-20 2016-08-31 迅鳐成都科技有限公司 一种面向数据产权保护的反内爬访控方法
CN105912934B (zh) * 2016-04-20 2018-10-30 迅鳐成都科技有限公司 一种面向数据产权保护的反内爬访控方法
CN106874487A (zh) * 2017-02-21 2017-06-20 国信优易数据有限公司 一种分布式爬虫管理系统及其方法
CN106874487B (zh) * 2017-02-21 2020-08-18 国信优易数据有限公司 一种分布式爬虫管理系统及其方法
CN107908794A (zh) * 2017-12-15 2018-04-13 广东工业大学 一种数据挖掘的方法、系统、设备及计算机可读存储介质
CN108667918A (zh) * 2018-04-25 2018-10-16 青岛海信移动通信技术股份有限公司 一种设备状态监控方法及装置
CN108667918B (zh) * 2018-04-25 2022-01-11 青岛海信移动通信技术股份有限公司 一种设备状态监控方法及装置
CN112395158A (zh) * 2020-11-17 2021-02-23 北京乐我无限科技有限责任公司 一种信息处理方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
Ma et al. Protracer: Towards practical provenance tracing by alternating between logging and tainting
US10013332B2 (en) Monitoring mobile application performance
CN103997438A (zh) 一种云计算中自动监控分布式网络爬虫的方法
US20100223446A1 (en) Contextual tracing
US9594663B2 (en) Apparatus and method for collecting log information from a plurality of servers
US9355002B2 (en) Capturing trace information using annotated trace output
CN105793860A (zh) 反调试方法
EP2990945B1 (en) Non-precise garbage collection in non-cooperative systems
JP6363152B2 (ja) データフロー分析のための装置、方法、コンピュータプログラム及び記憶媒体
Bhatt et al. Machine learning forensics: A new branch of digital forensics.
WO2016095570A1 (zh) 一种嵌入式系统的调试方法及装置、存储介质
Nagata et al. An Android application launch analyzing system
CN105573836B (zh) 数据处理方法及装置
CN111177113A (zh) 数据迁移方法、装置、计算机设备和存储介质
CN115280283A (zh) 在kubernets中运行pbs作业
Du et al. Hawkeye: Adaptive straggler identification on heterogeneous spark cluster with reinforcement learning
Stirparo et al. In-memory credentials robbery on android phones
US20090077563A1 (en) Systems And Methods For Grid Enabling Computer Jobs
US11573790B2 (en) Generation of knowledge graphs based on repositories of code
RU2008139875A (ru) Устройство обработки для детектирования определенной компьтерной команды
Cao et al. Paraaim: testing android applications parallel at activity granularity
CN115794583A (zh) 一种内核分析方法及装置
Alawneh et al. MTF: A scalable exchange format for traces of high performance computing systems
CN112464242A (zh) 一种网页平台漏洞采集方法、系统、终端及存储介质
Safitri A study: Volatility forensic on hidden files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140820