自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 无人机实验平台开发实记(四)

无人机实验平台开发实记

2022-06-11 21:34:23 75

原创 无人机实验平台开发实记(五)

无人机实验平台开发实记

2022-06-11 21:21:12 104

原创 无人机实验平台开发实记(三)

无人机实验平台开发实记

2022-06-11 20:31:05 137

原创 无人机实验平台开发实记(二)

无人机实验平台开发实记(三)

2022-06-11 19:22:38 87

原创 无人机实验平台开发实记(一)

无人机实验平台开发实记

2022-06-11 18:43:16 193

原创 无人机实验平台开发实记(总结)

无人机实验平台开发实记

2022-06-10 23:31:56 299

原创 【无标题】

2021SC@SDUSCSolrIndexWriter::write->push->HttpSolrClient::request->executeMethodprotected NamedList executeMethod(HttpRequestBase method, final ResponseParser processor) throws SolrServerException {method.addHeader(“User-Agent”, AGENT);HttpEnt

2021-12-28 12:31:12 58

原创 【无标题】

2021SC@SDUSC首先获取各个文件夹下的输入,分别为crawl/segments/*/目录下crawl_fetch存入的CrawlDatum,crawl_parse目录下存入的CrawlDatum,parse_data目录下存入的ParseData,parse_text目录下存入的ParseText,content目录下存入的Content,crawl/crawldb/current目录下存入的CrawlDatum,crawl/linkdb目录下存入的Inlinks。省略的部分检查是否要删除数据,

2021-12-28 12:30:20 88

原创 【无标题】

2021SC@SDUSCnutch源码分析—solrindex本章开始分析nutch源码的最后一步,即通过“bin/nutch solrindex http://localhost:8983/solr crawl/crawldb/ -linkdb crawl/linkdb/ -dir crawl/segments/ -filter -normalize”命令在solr服务器上建立索引。首先看nutch执行脚本的其中一段,elif [ “$COMMAND” = “solrindex” ] ; then

2021-12-28 12:29:22 90

原创 【无标题】

2021SC@SDUSCinvert函数创建了两个hadoop的Job,第一个Job设置输入为crawl/segments/*/下的parse_data目录,Mapper函数为LinkDb的map函数,Reducer为LinkDbMerger,Combiner为LinkDbMerger,该Job的作用是把parse_data中记录的url记录连接进行反向,存入临时目录newLinkDb中,所谓反向,比方说parse_data目录中记录的url链接为A(Key)->B(Value)、A(Key)-&g

2021-12-28 12:26:59 62

原创 【无标题】

2021SC@SDUSCnutch源码分析—invertlinks命令“bin/nutch invertlinks crawl/linkdb -dir crawl/segments”最终会调用org.apache.nutch.crawl.LinkDb的main函数。LinkDb::mainpublic static void main(String[] args) throws Exception {int res = ToolRunner.run(NutchConfiguration.creat

2021-12-28 12:25:53 65

原创 【无标题】

2021SC@SDUSCCrawlDbReducer::reduce第二部分public void reduce(Text key, Iterator values,OutputCollector<Text, CrawlDatum> output, Reporter reporter)throws IOException {...if (signature == null) signature = fetch.getSignature();long prevModified

2021-12-27 22:09:35 48

原创 【无标题】

2021SC@SDUSCnutch源码分析—updatedb“bin/nutch updatedb crawl/crawldb crawl/segments/2*”这条命令最终会执行org.apache.nutch.crawl.CrawlDb的main函数。public static void main(String[] args) throws Exception {int res = ToolRunner.run(NutchConfiguration.create(), new CrawlDb(

2021-12-27 22:08:34 47

原创 【无标题】

2021SC@SDUSCHtmlParser::getParse->getMetaTagspublic static final void getMetaTags(HTMLMetaTags metaTags, Node node,URL currURL) {metaTags.reset();getMetaTagsHelper(metaTags, node, currURL);}private static final void getMetaTagsHelper(HTMLMetaTag

2021-12-27 22:06:52 55

原创 【无标题】

2021SC@SDUSC“bin/nutch parse crawl/segments/*”这条命令最终会调用org.apache.nutch.parse.ParseSegment的main函数。ParseSegment::mainpublic static void main(String[] args) throws Exception {int res = ToolRunner.run(NutchConfiguration.create(), new ParseSegment(),args)

2021-12-27 22:05:41 62

原创 【无标题】

2021SC@SDUSCFetcher::run->FetcherThread::runpublic void run() {FetchItem fit = null;try { while (true) { ... fit = ((FetchItemQueues) fetchQueues).getFetchItem(); ... try { do { Protocol protocol = this.protocolFa

2021-12-27 22:04:25 47

原创 【无标题】

2021SC@SDUSC根据上一章的分析,“bin/nutch fetch crawl/segments/*”这条命令最终会调用org.apache.nutch.fetcher.Fetcher的main函数。public static void main(String[] args) throws Exception {int res = ToolRunner.run(NutchConfiguration.create(), new Fetcher(), args);System.exit(res)

2021-12-27 22:03:24 63

原创 【无标题】

2021SC@SDUSCSelector::map->DefaultFetchSchedule::shouldFetchpublic boolean shouldFetch(Text url, CrawlDatum datum, long curTime) {if (datum.getFetchTime() - curTime > (long) maxInterval * 1000) {if (datum.getFetchInterval() > maxInterval) {da

2021-12-27 22:01:49 62

原创 【无标题】

2021SC@SDUSC根据上一章的分析,“bin/nutch generate crawl/crawldb crawl/segments”这条命令最终会调用org.apache.nutch.crawl.Generator的main函数。Generator::mainpublic static void main(String args[]) throws Exception {int res = ToolRunner.run(NutchConfiguration.create(), new Ge

2021-12-27 22:00:29 52

原创 【无标题】

2021SC@SDUSC本篇继续上一篇的分析InjectMapper::map->processMetaDataprivate void processMetaData(String metadata, CrawlDatum datum, String url) { String[] splits = metadata.split(TAB_CHARACTER); for (String split : splits) { int indexEquals = split.

2021-12-27 21:58:55 51

原创 【无标题】

2021SC@SDUSC本章开始分析nutch 1.12版本的源码,nutch在爬取网页时分为inject、generate、fetch、parse、updatedb五个步骤,本章先来看inject命令,nutch官网教程给出的实例如下,bin/nutch inject crawl/crawldb urlsurls目录中的文件seed.txt包含了其实的url地址。编译nutch源码后,在目录runtime/local/bin/的nutch脚本里可以看到如下一段代码,…elif [ “COMMA

2021-12-27 21:54:54 666

原创 2021-09-23

Nutch相关分析探索综述Nutch是由Doug Cutting发起的开源爬虫项目,在搜索引擎中负责爬取网页,同时自动维护网页的URL信息。nutch孵化了现在大数据处理框架Hadoop。在nutch V 0.8.0 版本之前,Hadoop是nutch的一部分,从nutch V0.8.0开始,HDFS和MapReduce从nutch中剥离出成为Hadoop。v0.8.0之后,nutch就完全构建在Hadoop的基础之上了。获取基本信息后得知,nutch主要分两个功能模块,网页爬取和爬取后的searche

2021-09-30 23:44:05 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除