本篇文章為大家展示了如何實現(xiàn)generate.max.count的參數(shù)處理,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西安企業(yè)提供專業(yè)的網(wǎng)站設計制作、成都網(wǎng)站建設,西安網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
對generate.max.count參數(shù)的處理在org.apache.nutch.crawl.Generator內部類Selector中
org.apache.nutch.crawl.Generator中相關變量聲明情況
private HashMaphostCounts = new HashMap (); private int maxCount;
內部類Selector的config方法中
maxCount = job.getInt(GENERATOR_MAX_COUNT, -1);
reduce方法中的處理
/*** 1、獲取 某一主機下的int[] ,如果為null,聲明一個數(shù)組,放入map中,int數(shù)組第2個值+1; */ //1 int[] hostCount = hostCounts.get(hostordomain); if (hostCount == null) { hostCount = new int[] { 1, 0 }; hostCounts.put(hostordomain, hostCount); } hostCount[1]++;// increment hostCount //2、檢查是否到了topN的數(shù)量,如果hostCount的第一個值大于limit // check if topN reached, select next segment if it is while (segCounts[hostCount[0] - 1] >= limit//segCounts : && hostCount[0] < maxNumSegments) { hostCount[0]++; hostCount[1] = 0; } // reached the limit of allowed URLs per host / domain // see if we can put it in the next segment? if (hostCount[1] >= maxCount) { if (hostCount[0] < maxNumSegments) { hostCount[0]++; hostCount[1] = 0; } else { if (hostCount[1] == maxCount + 1 && LOG.isInfoEnabled()) { LOG.info("Host or domain " + hostordomain + " has more than " + maxCount + " URLs for all " + maxNumSegments + " segments. Additional URLs won't be included in the fetchlist."); } // skip this entry continue; } } entry.segnum = new IntWritable(hostCount[0]); segCounts[hostCount[0] - 1]++;
上述內容就是如何實現(xiàn)generate.max.count的參數(shù)處理,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。