Heritrix可分为四大模块: 1.控制器CrawlController 2.待处理的uri列表  Frontier 3.线程池 ToeThread 4.各个步骤的处理器 (1)Pre-fetch processing chain:主要处理DNS-lookup, robots.txt,认证,抓取范围检查等. (2)Fetch Processing chain:抓取处理器.对于每个协议,均有一个类作支持,如FetchHTTP. (3)Extractor processing chain:内容提取…
nutch-site.xml 在nutch2.2.1中,有两份配置文件:nutch-default.xml与nutch-site.xml. 其中前者是nutch自带的默认属性,一般情况下不要修改. 如果需要修改默认属性,可以在nutch-site.xml中增加一个同名的属性,并修改其值.nutch-site.xml中的属性值会覆盖nutch-default.xml中的值. 1.db.ignore.external.links 若为true,则只抓取本域名内的网页,忽略外部链接. 可以在 rege…
一.makefile简介 定义:makefile定义了软件开发过程中,项目工程编译链.接接的方法和规则. 产生:由IDE自动生成或者开发者手动书写. 作用:Unix(MAC OS.Solars)和Linux(Red Hat.Ubuntu)系统下由make命令调用当前目录下的makefile文件执行,可实现项目工程的自动化编译. 二.语法规则 target:prerequisites command 其中,target为需要生成的目标,prerequisites为依赖项,command为make需…
自动释放池: @autoreleasepool { } 内存管理机制       谁污染,谁治理 垃圾回收机制:gc(Garbage collection),由系统管理内存,开发人员不需要管理. OC从版本2.0之后开始支持垃圾回收机制,但iOS开发平台不支持垃圾回收机制 继承自NSObject的对象需要内存管理 OC中通过引用计数器管理内存 通过引用计数器管理内存的两种方式 1.MRC:(maual reference count),手动引用计数,就是开发人员通过引用计数管理内存 2.ARC:…
Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能. 一.Mahout安装.配置 1.下载并解压Mahout http://archive.apache.org/dist/mahout/ tar -zxvf mahout-distribution-0.9.tar.…
一.Avro的基本功能 1.定义了数据模式文件的语法,一般使用json文件.以及一些数据基本类型与复杂类型. 2.定义了数据序列化到文件后的数据格式,此格式可供各种语言进行读取. 3.为部分语言定义了序列化文件的读取API,如JAVA等. 4.扩展了hadoop的基本mapreduce,提供了用于使用Avro作为输出框架的mapreduce API. 二.Gora中的avro 在gora中使用avro其实只使用了avro基本功能中的第一个,这个gora官方示例中的说明: Data beans a…
一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. 2.在之前,主要使用SolJS作为solr的客户端,目前主要使用ajax-solr,信息请见:https://github.com/evolvingweb/ajax-solr/wiki/Reuters-tutorial%3A-step-1. 3.以下示例未使用上述所述的客户端,而是使用了ajax的基…
1.版本说明 (1)最新版本:3.3.0 (2)最新release版本:3.2.0 (3)重要历史版本:1.14.4 3.1.0及之前的版本:http://sourceforge.net/projects/archive-crawler/files/ 3.2.0及之后的版本:http://archive.org/ 由于国情需要,后者无法访问,因此本blog研究的是1.14.4版本. 2.官方材料 source:http://sourceforge.net/projects/archive-cra…
一.新建项目并将Heritrix源码导入 1.下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包: 2.在Eclipse下新建Java项目,取名Heritrix.1.14.4: 3.复制SRC包下面src/java文件夹下org和st两个文件夹到项目中的src包下: 4.复制SRC包下src下conf文件夹到项目根目录: 5.复制SRC包下lib文件夹到项目根目录: 6.复制ZIP包下webapps文件夹到…
一.Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的.简单的数据.如Google使用其来保存账户信息,Heritrix用其来保存froniter. (2)key/value是Berkeley DB用来管理数据的基础,每个key/value对代表一条记录. (3)Berkeley DB在底层实现采用B树,可以看成能够存储大量数据的HashMap. (4)它是Oracle公司的一个产品,C++版本最新出现,之后JAVA等版本也陆续出现.它不支持SQL语…