自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (5)
  • 收藏
  • 关注

原创 nutch中如果想想对一个文件实现独享,可以使用文件锁

下面介绍一下文件锁的使用方法: (1)创建文件锁: FileSystem fs = FileSystem.get(getConf()); Path lock = new Path(crawlDb, LOCK_NAME); LockUtil.createLockFile(fs, lock, force); getConf()获得当前job的配置文件Configura

2012-07-31 09:43:09 1050

原创 nutch爬取结果中为什么最后的链接状态CrawlDatum错了?

因为我最后一遍爬取的时候没有将链接数据库CrawlDb进行更新,所以连接数据库中的url链接信息是上一次的状态,所以和预期的效果不一样。 解决方案:在最后一遍爬取时,既要更新已存在的url的CrawlDatum,同时不能添加本次解析网页获得的链接(因为我们只爬取三层,第四层的链接就不需要),所以需要在改动CrawlDb中的update函数,添加一个boolean型的参数,表示是否需要将链接更新到

2012-07-30 15:36:45 1081

原创 Nutch中CrawlDatum的FetchTime的设置了解

昨天看错了,实际上对于爬取成功的url,在update()阶段,程序会将url的FetchTime+FetchInterval作为最终的下次FetchTime,这个FetchTime已经不再代表网页成功Fetch的时间,而是作为下次Fetch的时间,如果在小于新的FetchTime的时间内对该url进行爬去,程序将会过滤掉该url。 在CrawlDbReducer中的reduce函数:

2012-07-29 18:33:40 2258

原创 为什么injector了47个站点,而generate的时候却把上次爬去的父链接给过滤掉了?

因为返回时间的问题,被第二个多了条件给过滤掉了 if (!schedule.shouldFetch(url, crawlDatum, curTime)) { LOG.debug("-shouldFetch rejected '" + url + "', fetchTime=" + crawlDatum.getFetchTime() + ", c

2012-07-29 15:58:40 978

原创 nutch中调用CrawlDatum的set()函数的地方

(1)Injector中的InjectReducer内部类的reduce函数中第一次调用 (2)CrawlDbReducer中的reduce函数多次调用set函数 /** * 输入是,CrawlDb,Segment\crawl_fetch和Segment\carwl_parse中的键值对。 */ public void reduce(Text key, Iterator v

2012-07-28 18:31:38 2232

原创 为什么会出现子站点的CrawlDatum中的ifStart和finished字段与父站点相同?

和CrawlDatum中的set()没有关系。 原因是:因为我在Injector第二个job的ReducerClass(即InjectReducer)最后添加了代码 res.setIfStart(true); res.setFinished(false); 而InjectorReducer类将上一个job产生的键值对和链接数据库CrawlDb中的键值对进行合并,就是将两个数据源中的键值对全

2012-07-28 18:08:34 2062

原创 nutch爬去是出现NullPointException问题

问题出现在:package org.apache.nutch.protocol.http.api中的RobotRulesParser类的isAllowed方法中,可能请求时间过短的原因,让该方法睡眠500毫秒问题就解决了,但影响效率。有更好的解决方案待深入研究。 public boolean isAllowed(URL url) { // System.err.println(

2012-07-28 16:36:49 870

原创 nutch持久化问题

nutch中要持久化的数据都有两个方法,将需要持久化得数据通过write写出,恢复时通过read读入,我想CrawlDatum类中,添加了两个boolean型的属性,生成数据库后再用CrawlDbReader类读取,发现值都为false,后来发现没有将这两个属性进行写入的原因,问题解决。 public static CrawlDatum read(DataInput in) throws I

2012-07-26 16:22:31 879

原创 nutch1.2的generator如何获得输入的

今天分析了nutch中Generator如何读取上一步Injector生成的链接数据库CrawlDb,将nutch输入的原理进行总结。 (1)MapTask中通过获取job的InputFormat类,然后通过该类获得RecodReader,代码如下:          RecordReader rawIn =job.getInputFormat().getRecordReader(inputS

2012-07-25 15:42:18 988

原创 Nutch如何读取CrawlDb中的<Text,CrawlDatum>键值对

想要查看CrawlDb中的键值对,于是今天修改了nutch中的CrawlDbReader类,对源码进行了稍微的修改,提交了一个job,然后在添加的MapperClass类中,将CrawlDb中的键值对打印出来进行查看分析,代码如下: (1)添加的MapperClass类,代码如下: public static class CrawlDbShowMapper implements Mappe

2012-07-25 09:26:33 1420

原创 Nutch中OutputCollector如何输出结果

OutputCollector调用OutputFormat获得RecordWriter类,然后通过该类的write函数具体实现输出 所以要控制输出结果,就要写自己的OutputFormat类,重写RecorWriter类。

2012-07-24 09:43:50 1393

原创 Nutch1.2中的数据流介绍(其他版本可能不同)

Injector:插入操作 (1)Injector获得纯文本的url种子文件的路径,即rootUrlDir (2)inject第一个job,将纯文本url文件读取解析,然后经过一系列过滤加工处理,返回键值对(备注:Text是url封装类,CrawlDatum是url状态类)存储到临时目录tempDir中。 (3)inject第二个job,输入为临时目录tempDir和url种子库CrawlD

2012-07-21 16:25:34 1184

原创 nutch系统是如何加载和管理URLFilter插件的

根据Injector中的URLFilter插件加载为例进行分析。     (1)首先在Crawl中创建了一个Configration实例,并将它传递给了Injector     (2)Injector的构造函数中,根据该配置信息类JobConf调用URLFilter获得所有的url过滤插件:filters = new URLFilters(jobConf);     (3)在URLFilte

2012-07-18 16:37:54 1704

原创 nutch如何根据regex-urlfilter.txt文件过滤url链接的?

今天看了一下nutch的url链接过滤插件加载和工作原理,以及他和配置文件regex-urlfilter.txt之间的关系,下面对得到的一些收获进行介绍。 关系:扩展RegexURLFilter根据配置文件regex-urlfilter.txt生成一些列的规则Rule(就是一些列正则表达式Pattern类),扩展过滤方法filter()被调用时,会根据生成的规则过滤url。 具体扩展加载和生成

2012-07-18 15:56:09 5030

原创 nutch如何对种子链接输入产生键值对的?

nutch程序对输入文件有两次处理: (1)提交Job前在JobClient中,为了使输入不至于过大,程序调用切分函数(如下代码),对输入进行切分     if (job.getUseNewMapper()) {       maps = writeNewSplits(context, submitSplitFile);     } else {       maps = writeOl

2012-07-18 10:32:49 1343

原创 Nutch中的Injector为什么按照url链接的个数执行多次Map()函数?

今天详细分析了一下nutch源代码,发现程序调用多次map原因: 首先开始以为是LocalJobRunner的原因,因为LocalJobRunner将输入切分成了若干份rawSplits看,然后对每个分块调用MapTask线程执行处理(备注:MapTask不是Map类,他是负责管理Map类的程序,他调用MapRunner函数调用Map函数)。 但后来发现不是LocalJobRunner类的原因

2012-07-17 18:48:22 800

原创 lucene索引查看工具LukeAll下载地址和Appache开软件下载地址

lukeAll下载地址:http://code.google.com/p/luke/downloads/list apache下载地址:http://archive.apache.org/dist/nutch/

2012-07-17 09:41:10 4513

原创 配置nutch1.2时url被过滤掉的问题

按照步骤修改了regex-urlfilter.txt。但是还是将所有的url都过滤掉了,查看提示说让我查看url seed list或者url filter配置文件。 我将crawl-urlfilter.txt类中的最后一行修改为“-.”意思是全部接受。然后再运行程序就可以了。

2012-07-17 09:37:43 841

原创 下载软件注意事项

今天配置tomcat出现了莫名其妙的错误 请求高人指点后发现时下载的软件的错误 我下载的是src类型的压缩文件,这种文件时未编译的,所以不能直接在linux下配置实用 知道这点之后,我有重新去apache网站上下载了bin类型的压缩文件 然后解压,拷贝到目标目录下,启动startup.sh服务,然后再浏览器里输入http:\\localhost:8080就可以看到apache的首页了。

2012-07-13 19:08:11 731

原创 Linux下hadoop完全分布式配置总结

这段时间一直在配置hadoop系统,搞了半个多月,昨天听凯子说他配成功过,然后给我推荐了他的写的博客,今天按照他配置的过程,终于配置成功了,首先感谢凯子帅哥,以后要注意多和朋友们交流,这样就可以少走很多弯路。     凯子帅哥的博客地址(http://www.zhenv5.com/?s=hadoop&x=0&y=0),可以到他的zhenv5网站查看原文。     下面将我的配置过程,和配置不成

2012-07-08 15:50:48 1046

原创 hadoop完全分布式过程中遇到的一些问题和总结

最近接触在配置nutch,接触到一些hadoop方面的知识,自己想配置一个完全分布式的hadoop系统,配置过程中遇到了很多的问题,这里将自己遇到的问题进行总结一下。 (1)首先是Exception in thread "main" java.io.IOException: Call to /XXX.XXX.XX.XXX:9000 failed on local exception: java.

2012-07-05 10:51:55 2746

JMF开源软件包

JMF开源软件包,可以使用编写视频音乐播放器等

2012-09-23

javacc-4.0和javacc-5.0

用于编译.jj文件的软件包,javacc工具,编译NutchAnalysis.jj文件时用到的,很好的一个开源代码

2012-09-17

数据结构试验 山东大学

山东大学 数据结构试验 试验1 子集全排序 试验2 插入排序 冒泡排序 归并排序 基数排序 试验3 链表 插入删除 合并 正向反向输出 试验4 二叉树 插入删除 前序中序后序遍历 试验5 堆 插入删除输出排序 试验6 图 输出最小树

2011-05-19

数据库课程设计-图书馆信息管理系统

(1) 读者信息的制定、输入、修改、查询,包括种类、性别、借书数量、借书期限、备注。 (2) 书籍基本信息制定、输入、修改、查询,包括书籍编号、类别、关键词、备注。 (3) 借书信息制定、输入、修改、查询,包括书籍编号、读者编号、借书日期、借书期限、备注。 (4) 还书信息制定、输入、修改、查询,包括书籍编号、读者编号、还书日期、还书期限、备注。 (5)意外处理(续借、超期赔偿、丢失赔偿、损坏赔偿等) (6)多条件查询各种信息. (7)用户权限(普通读者和图书管理员) (8)异常处理

2011-05-18

图形学第二个试验-多边形世界

写一个可以交互的OpenGL应用程序,支持用户利用鼠标创建和删除2维多边形对象。基本功能包括: 对象创建:支持用户利用鼠标指定各个顶点位置,创建多边形。 对象删除: 支持用户选择一个多边形(与你的多边形保存的数据结构有关)并删除。 对象存储: 设计一种数据结构存储每个多边形的顶点与边,支持文件存盘,。 提示:由于删除操作需要多边形的选择机制,你可以在设计数据结构时,把可以帮助你完成选择的信息一起保存。 扩展功能可以包括(至少选择其一): 1. 支持用户选择多边形的颜色 2. 支持用户移动多边形 3. 支持用户改变多边形单个顶点的位置 4. 支持3D多边形 5. 其他(需要通过指导老师认可)

2011-05-14

空空如也

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

TA关注的人

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