- 浏览: 82896 次
- 性别:
- 来自: 北京
-
最新评论
文章列表
上篇看到Injector的初始化,这次继续阅读,看看Mapper
public void map(WritableComparable key, Text value,
OutputCollector<Text, CrawlDatum> output, Reporter reporter)
throws IOException {
String url = value.toString(); // value is line of text
//忽略开头符号为#的
...
从上篇的Crawl可以看到,抓取过程是按一个一个阶段,逐步进行。所以先看Injector( org.apache.nutch.crawl.Injector)
// initialize crawlDb
injector.inject(crawlDb, rootUrlDir);
,从代码可以很明显看出,nutch是建立于hadoop之上,只不过使用的是旧的api。
Injector主要功能:
1.对url文件进行规范化和过滤,将结果存入临时文件夹
2.将上述结果与老的crawldb/current合 ...
nutch源码阅读(1)-Crawl
- 博客分类:
- nutch
org.apache.nutch.crawl.Crawl实现的是一个完成的抓取过程,所以由它开始。
/* Perform complete crawling and indexing (to Solr) given a set of root urls and the -solr
parameter respectively. More information and Usage parameters can be found below. */
public static void main(String args[]) throws ...
1.map(K1, V1) –> list (K2, V2) // 对输入数据进行抽取过滤排序等操作
2.combine(K2, list(V2)) –> list(K2, V2) // 为了减少reduce的输入,需要在map端对输出进行预处理,类似3.reduce。不是所有的reduce都在部分数据集上有效,比如求平均值就不能简单用于combine
4.partition(K2, V2) –> integer //将key划分配到不同reduce分区,返回分区索引号。分区内 ...
Mapreduce概念:一种分布式编程模型,在hadoop中用于负责mapreduce任务的是JobTracker,TaskTracker,
Hadoop中只有一台JobTracker。
1.JobTracker:用于任务的管理和调度工作。
2.TaskTracker:用于执行工作。
Mapreduce实现概述:
Hadoop中,maprecude的形式是个Job,每个Job又分为Map ...
错误信息:
Exception in thread "main" java.io.IOException:Failed to set permissions of path:\tmp\hadoop-yth\mapred\staging\yth-2036315919\.staging to 0700
官方BUG参考:
https://issues.apache.org/jira/browse/HADOOP-7682
解决方法:
1、下载并解压http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.1. ...
hadoop问题解决
- 博客分类:
- hadoop
1.ssh免密码访问配置失败
ssh-keygen -t rsa
cd ~/.ssh/ cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
访问仍需密码 用root tail -f /var/log/secure
tail -f /var/log/secure
May 10 04:25:20 li414-132 sshd[22586]: Authentication refused: bad ownership or modes for ...
nutch eclipse 缺少的jar
- 博客分类:
- nutch
nekohtml http://nekohtml.sourceforge.net/ dk.brics.automaton http://www.brics.dk/automaton/ rome http://mirrors.ibiblio.org/pub/mirrors/maven2/rome/rome/0.9/rome-0.9.jar tagsoup-1.1.3 http://www.findjar.com/jar/org.ccil.cowan.tagsoup/jars/tagsoup-1.1.3.jar.html
1. 如何绕过目标站点的robots.txt限制 多数站点都是只允许百度、google等搜索引擎抓取的,所以会在robots.txt里限制其他爬虫。 nutch自然是会遵循robots协议的,但是我们可以通过修改nutch源码来绕过限制。 相关代码位于(nutch版本1.5.1,其他版本未测试): org.apache.nutch.fetcher.Fetcher的run方法. 找到以下几行代码并注释掉就OK了。
Java代码
if (!rules.isAllowed(fit.u)) {
// unblock
...
Nutch相关框架安装使用最佳指南
- 博客分类:
- nutch
转:http://user.qzone.qq.com/281032878/blog/1342675154#!app=2&via=QZ.HashRefresh&pos=1362131478
Chinese installing and using instruction - The best guidance in installing and using Nutch in China
国内首套免费的《Nutch相关框架视频教程》
土 ...
linux 下的sar工具命令小结
- 博客分类:
- linux
sar这东西,一开始还以为是内部有的,原来是外部的工具,可以到http://pagesperso-orange.fr/sebastien.godard/download.html去下载
1 安装 tar zxvf xxx.tar.gz
./configure
make
make install
2 使用 pidstat 2 5 //每隔2秒,显示5次,所有活动进程的CPU使用情况pidstat -p 3132 2 5 //每隔2秒,显示5次,PID为3132的进程的CPU使用情况显示pids ...
Memcached介绍
- 博客分类:
- Memcached
Memcached的主要特点
基于C/S架构,协议简单
基于libevent的事件处理
自主内存存储处理
基于客户端的Memcached分布式
1.数据存储方式:Slab Allocation
Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。 Slab Allocation的原理相当简单。 将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合)
Page:分配给Sl ...
MySQL 5.5.x 单机多实例配置实践
- 博客分类:
- mysql
背景/需求: 在一台服务器上通过源码编译安装一个版本为5.5以上的MySQL数据库; 将所有配置文件与数据等均存放在/opt/mysql,便于今后实现快速迁移、整体备份和快速复制; 在同一个MySQL中运行两个实例,一个绑定在端口3306, ...
MySQL定期分析检查与优化表
- 博客分类:
- mysql
定期分析表
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]
本语句用于分析和存储表的关键字分布。在分析期间,使用一个读取锁定对表进行锁定。这对于MyISAM, BDB和InnoDB表有作用。对于MyISAM表,本语句与使用myisamchk -a相当。 MySQL使用已存储的关键字分布来决定,当您对除常数以外的对象执行联合时,表按什么顺序进行联合。
mysql> analyze table a; +--------+---------+----------+-------------------- ...
MySQL主从复制几个重要的启动选项
- 博客分类:
- mysql
(1) log-slave-updates
log-slave-updates这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作
(2) master-connect-retry
master-connect-retry这个参数是用来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒