- 浏览: 283675 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (247)
- free talking (11)
- java (18)
- search (16)
- hbase (34)
- open-sources (0)
- architect (1)
- zookeeper (16)
- vm (1)
- hadoop (34)
- nutch (33)
- lucene (5)
- ubuntu/shell (8)
- ant (0)
- mapreduce (5)
- hdfs (2)
- hadoop sources reading (13)
- AI (0)
- distributed tech (1)
- others (1)
- maths (6)
- english (1)
- art & entertainment (1)
- nosql (1)
- algorithms (8)
- hadoop-2.5 (16)
- hbase-0.94.2 source (28)
- zookeeper-3.4.3 source reading (1)
- solr (1)
- TODO (3)
- JVM optimization (1)
- architecture (0)
- hbase-guideline (1)
- data mining (3)
- hive (1)
- mahout (0)
- spark (28)
- scala (3)
- python (0)
- machine learning (1)
最新评论
-
jpsb:
...
为什么需要分布式? -
leibnitz:
hi guy, this is used as develo ...
compile hadoop-2.5.x on OS X(macbook) -
string2020:
撸主真土豪,在苹果里面玩大数据.
compile hadoop-2.5.x on OS X(macbook) -
youngliu_liu:
怎样运行这个脚本啊??大牛,我刚进入搜索引擎行业,希望你能不吝 ...
nutch 数据增量更新 -
leibnitz:
also, there is a similar bug ...
2。hbase CRUD--Lease in hbase
此过程比较简单,是generate,fetch,udpatedb中的最后一环。其实就是将新发现的和抓取失败的送回crawldb/current下。
过程:
一。input
inputpaths:contains [ crawldb/current,crawl_fetch,crawl_parse],note:这是利用FileInputPath.addInputpath(),这意味着相当于使用多个files作为输入;但不同于MultiInputs.addInput()!
additionsAllowed :如果为false,只会更新crawldb中的urls而不会将新parsed的添加进crawldb中
生成job:利用Crawldb.createjob().
二。output
path:crawldb/current,保证下一次fetch的urls总是有效的。
format:MapFileOutputFormat。<text,crawldb> :<url,crawldatum>
三。MR
M:use default mapper
R:CrawldbReducer,其中对同一个url来自不同result files的进行状态 处理:如要有多个,根据fetchTime只取出最后一个。
note:1.在fetch.getStatus()分支中,在schedule.initializeSchedule()时会进行fetchtime的更新到当前时间。同时由linked --> db_unfetched,表明由fetch生成的outlink进行状态转换,等待下一回合的fetch操作。
2.由于使用了Hashpartition,所以同一Urls会进入相同的red,所以不用担心多个reds时如何保证所有urls在同一red中处理。
3.怎样保证已经fetched的urls不再fetch?
有generator进行了过滤:
A.在topn job中的mapper
1)shouldFetch()
public boolean shouldFetch(Text url, CrawlDatum datum, long curTime) { // pages are never truly GONE - we have to check them from time to time. // pages with too long fetchInterval are adjusted so that they fit within // maximum fetchInterval (segment retention(保留) period). if (datum.getFetchTime() - curTime > (long) maxInterval * 1000) { //maxInterval is 90days by default if (datum.getFetchInterval() > maxInterval) { datum.setFetchInterval(maxInterval * 0.9f); //超过指定最大间隔,减少至9成 } datum.setFetchTime(curTime); } if (datum.getFetchTime() > curTime) { return false; // not time yet } return true; //比当前时间早 }
这里只是进行了简单的fetchtime比较,由于updatedb后fetchtime设置了一个月后的间隔,所以这里返回 false。
所以以下步骤可以不分析了。这里只是给出更多的原因说明 而已
2)如果 上述返回 true,执行这个
LongWritable oldGenTime = (LongWritable) crawlDatum.getMetaData().get( Nutch.WRITABLE_GENERATE_TIME_KEY); if (oldGenTime != null) { // awaiting fetch & update;updatedb后的此值为空 if (oldGenTime.get() + genDelay > curTime) // still wait for // update;还没过期,不需要crawl? return; }
发现在udpatedb后,对应的_ngt_是不存在的,即在这里为null,同样返回
B.DecreasingFloatComparator
即使通过 A中的过滤,并不意味着此urls就一定被 选择为fetch,还要在筛选出topn by score。所以这里进一步过滤了urls.
事实上当进行下一回的generate时,已经不存在www.163.com这个url了:
hadoop fs -text output/debug/segments/20110714121627/crawl_generate/part-00000 | grep www.163.com -B 10 -A 10
http://www.163.com/rss/ Version: 7
Status: 1 (db_unfetched)
Fetch time: Tue Jul 12 23:49:27 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 0.01
Signature: null
Metadata: _ngt_: 1310616920169
出现 的只是未fetched的urls。
---------------------------------
之前新增/修改过crawldb的jobs有:
inject:新增crawldb/current下.
由于injector时是<url,crawldatum>格式,所以与此是兼容的。see injector
generator:如果更新时,結果更新到crawldb/current下
====================
output data:
http://189works.csdn.net/ Version: 7
Status: 1 (db_unfetched)
Fetch time: Tue Jul 12 23:41:30 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 0.01
Signature: null
Metadata:
http://aix.csdn.net/ Version: 7
Status: 1 (db_unfetched)
Fetch time: Tue Jul 12 23:45:56 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 0.01
Signature: null
Metadata:
。。。
发表评论
-
nutch 几种搜索布署
2011-12-29 13:21 8721。这是最简单的一种布署方式,通常用于简单测试。 ... -
nutch搜索架构关键类
2011-12-13 00:19 14todo -
nutch结合hadoop解説 RPC机制
2011-12-13 00:18 895todo -
nutch搜索架构关键类
2011-12-13 00:17 1139在整个crawl->recrawl ... -
访问hadoop数据时注意相对路径问题
2011-12-07 00:30 1423今天在nutch配置分布式搜索时出现搜索不到結果,背景是: ... -
nutch 发布时要注意的问题
2011-12-04 23:40 1859在利用Nutch自身的ant打 ... -
nutch 中的trie tree 算法简介
2011-11-18 14:18 945todoo -
nutch 配置文件详解
2011-11-17 16:58 2169下面来分析 一下,conf目录下各文件的作用是怎样的: cr ... -
nutch 分布式索引(爬虫)
2011-10-19 00:15 3848其实,全网抓取比intranet区别再于, 前者提供了较 ... -
nutch 分布式搜索-cluster-hdfs index
2011-10-17 02:14 1369此过程也很简单,步骤是: a.put the indexes ... -
nutch 分布式搜索-cluster-local index
2011-10-17 02:13 782此过程亦相当简单,只是修改一下search-servers.t ... -
nutch 分布式搜索-standalone mode
2011-10-17 01:47 970本地模式篇,其实就是相当 于之前图中的虚线部分。詳細如下 ... -
nutch对某个contentType文档进行解析的流程--html
2011-09-22 23:44 992经过上一遍contentType流程 介绍后,现在进入具体的 ... -
nutch对某个contentType文档进行解析的流程
2011-09-04 12:48 1673nutch支持对诸多的文档 ... -
nutch 处理robots.txt原理
2011-08-28 16:42 1711形如大多SE一样,在bot ... -
nutch analyzers 使用机制
2011-07-31 14:35 823一。索引时analyzer 我们知道,在Indexer ... -
nutch 数据增量更新
2011-07-22 19:25 3029以下是转载的执行recrawl的脚本(其实还是可以再优化的,比 ... -
nutch 评分机制
2011-07-22 02:28 1755其实nutch的评分机制有二部分,与通常的SE类似: 1 ... -
nutch 搜索site dedup
2011-07-22 01:41 887这个版本发现有个大大的bug,就是搜索时同一页面出现重复,不同 ... -
nutch 搜索流程 2-distributed search
2011-07-20 13:55 997了解了local search ,那么进行distribute ...
相关推荐
包含自定义NSE脚本 CVE-2020-0796 NSE脚本使用Microsoft SMBv3压缩(又名coronablue,SMBGhost)来检测易... nmap --script-updatedb 运行为 nmap -p445 --script cve-2020-0796 <<target>> -- @output -- | smb
Linux updatedb 命令 updatedb 命令用来创建或更新 slocate/locate 命令所必需的数据库文件。 updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库...
Nutch 是一个开源的搜索引擎项目,其核心功能包括网络爬虫(Crawler)和搜索器(Searcher)。本文主要分析Nutch爬虫的工作流程及其涉及的...了解Nutch的文件格式和工作流程对于管理和优化大规模的Web抓取任务至关重要。
- 运行`crawl`命令即可启动局域网抓取流程。 - 使用`inject`, `generate`, `fetch`, 和`updatedb`等底层命令可实现更为精细的全网抓取控制。 #### 四、全网抓取概览 全网抓取允许用户以高度定制的方式抓取整个...
这个动态库是我在arm64位开发板中编译完成的,系统环境为ubuntu16.04,依赖这些库 [compiler] sudo apt-get install build-essential [required] sudo apt-get install cmake git libgtk2.0-dev pkg-config ...
该存储库包含一组生产力命令,可以显着改善大型软件项目的开发工作流程。 : 建立档案资料库,快速定位。 : 使用 fast-updatedb 创建的文件信息数据库定位文件和文件夹。 :从文件夹中查找文件。 :从给定的文件或...
updatedb命令用来创建或更新 slocate/locate 命令所必需的数据库文件。 updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。 注意:slocate ...
代码是Python 写的,作用是连接mysql数据库,在连接上后循环查询1000次,这个代码可以用来测试数据库select性能
在可能存在误解或难以理解的地方添加详细注释,特别是在数据库操作如SelectDB、InsertDB、UpdateDB、DeleteDB等函数中,应完整注释数据库操作语句,以便在缺乏DBINTERFACE表资料时也能快速修改流程。注释要适度,只...
Nutch 提供了从初始化URL集合、网页抓取、内容解析、索引构建到查询检索等一系列功能,其工作流程包括URL注入、生成抓取队列、内容抓取、内容分析、URL更新和索引构建。 Nutch 的目录结构如下: 1. `bin`:包含可...
渗透测试之Nmap扫描工具 Nmap是一个开源的网络探测和安全审核工具,也是渗透... + --script-updatedb:更新脚本数据库 + --script-help=<Lua scripts>:显示脚本的帮助信息,其中部分可以逗号分隔的文件或脚本类别。
《SQL Tools增强版:连接与管理数据库的利器》 在信息技术高速发展的今天,数据库的管理和操作已经成为IT工作中的重要一环。"SQL Tools增强版"就是一款专为1433SQL数据库设计的强大连接器,它不仅提供了基础的连接...
Nutch支持两种爬行模式:企业内部网爬行和整个互联网爬行,后者通过更底层的命令(如inject、generate、fetch和updatedb)提供更强的控制能力。 #### 安装与配置步骤 **1. Java安装及配置** - 首先,从官方源下载...
启动Nutch爬虫,可以使用`bin/nutch inject`命令将种子URL注入到爬虫队列,然后通过`bin/nutch fetch`, `bin/nutch updatedb`, `bin/nutch parse`, `bin/nutch index`等命令执行抓取流程。如果要在分布式模式下运行...
`inject` 命令用来注入种子URL,`generate` 生成需要抓取的新URL列表,`fetch` 负责下载网页,而 `updatedb` 更新数据库以包含新抓取的页面。 **环境配置** 在使用 Nutch 之前,需要进行一定的环境配置。首先,确保...
2. **多步操作** - 包括 `inject`, `generate`, `fetch`, `updatedb` 等命令,提供更灵活的控制。 **使用crawl命令抓取网页:** 1. **创建urls目录** - 存放待抓取的URL文件,比如 `www.sina.com.cn`。 2. **配置...
- **更新脚本数据库** (`--script-updatedb`):更新 NSE 脚本数据库。 - **详细输出** (`-v` / `-d[level]`):增加输出信息的详细程度。 - **只显示开放端口** (`--open`):仅显示开放的端口。 #### 其他选项 - **...
4. **更新脚本数据库**:使用`--script-updatedb`更新脚本数据库。 5. **常用脚本示例**: - `dns-zone-transfer`: 尝试从DNS服务器拉取区域文件(AXFR)。 ``` nmap --script dns-zone-transfer.nse --script-...
4. **抓取网页**:使用`bin/nutch fetch`命令下载网页,`bin/nutch parse`命令解析内容,`bin/nutch updatedb`更新数据库。 5. **生成索引**:使用`bin/nutch index`命令将解析后的数据导入到搜索引擎,如Solr或...