CN103997438A - 一种云计算中自动监控分布式网络爬虫的方法 - Google Patents
一种云计算中自动监控分布式网络爬虫的方法 Download PDFInfo
- 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
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。
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)
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)
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 | 北京奇虎科技有限公司 | 网页抓取的方法及设备 |
-
2014
- 2014-06-03 CN CN201410241378.0A patent/CN103997438A/zh active Pending
Patent Citations (5)
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)
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 |