- 浏览: 1183388 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (350)
- Ajax研究 (2)
- javascript (22)
- struts (15)
- hibernate (12)
- spring (8)
- 我的生活 (28)
- jsp (2)
- 我的随笔 (84)
- 脑筋急转弯 (1)
- struts2 (2)
- ibatis (1)
- groovy (1)
- json (4)
- flex (20)
- Html Css (5)
- lucene (11)
- solr研究 (2)
- nutch (25)
- ExtJs (3)
- linux (6)
- 正则表达式 (2)
- xml (1)
- jetty (0)
- 多线程 (1)
- hadoop (40)
- mapreduce (5)
- webservice (2)
- 云计算 (8)
- 创业计划 (1)
- android (8)
- jvm内存研究 (1)
- 新闻 (2)
- JPA (1)
- 搜索技术研究 (2)
- perl (1)
- awk (1)
- hive (7)
- jvm (1)
最新评论
-
pandaball:
支持一下,心如大海
做有气质的男人 -
recall992:
山东分公司的风格[color=brown]岁的法国电视[/co ...
solr是如何存储索引的 -
zhangsasa:
-services "services-config ...
flex中endpoint的作用是什么? -
来利强:
非常感谢
java使用json所需要的几个包 -
zhanglian520:
有参考价值。
hadoop部署错误之一:java.lang.IllegalArgumentException: Wrong FS
如何读取nutch抓取数据
1.首先nutch的配置已经在博客里面写好了,如果还不知道,建议现看下,然后再读这篇文章。
2.用一个SequenceFile.Reader来读取排序的输入。SequenceFile.Reader m_reader = m_reader = new SequenceFile.Reader(fs, content, conf);
3.用NutchConfiguration.create()实例化一个Configuration的对象conf。
Configuration conf = NutchConfiguration.create();
//实例化一个path的路径,"path"是我们通过读取配置文件(conf.properties)获取的路径
Path content = new Path(path + "/data");
//通过这个路径就可有得到文件所在的位置。
FileSystem fs = content.getFileSystem(conf);
4.下面看下完整的代码
public class ContentReader
{
private SequenceFile.Reader m_reader = null;
public ContentReader(String path) throws Exception
{
Configuration conf = NutchConfiguration.create();
Path content = new Path(path + "/data");
FileSystem fs = content.getFileSystem(conf);
m_reader = new SequenceFile.Reader(fs, content, conf);
}
public boolean next(Content content) throws Exception
{
Text key = new Text();
boolean ret = m_reader.next(key, content);
if (!ret)
{
m_reader.close();
}
return ret;
}
}
5.通过读取配置文件获取HDFS的路径
(1):我们获取的nutch所产生的路径是:/home/user/xipei/nutch1.0/crawl/segments/20091215145839/content/data.
这里面有一些属性比如version、url、content等,有兴趣的朋友可以看下它的源代码。
(2):20091215145839 : 这是nutch在抓取时候所产生的14位的时间。当然我们完全可有只通过读./segements/。就可以读取到下面所有的14位时间的文件夹。下面来看程序:
/**
* According to the path of a path to obtain hdfs
* @param prefixPath
* @return
*/
public static List<String> getHdfsPath(String prefixPath) {
List<String> hdfsPaths = new ArrayList<String>();
Path path = new Path(prefixPath);
Configuration conf = NutchConfiguration.create();
JobConf job = new JobConf(conf);
try {
FileSystem fs = FileSystem.get(job);
FileStatus[] fileStatus = fs.listStatus(path);
String suffixPath = "content"+File.separator+"part-00000";
if (fileStatus == null) return null;
for (int i = 0; i < fileStatus.length; i++) {
hdfsPaths.add(prefixPath + File.separator + fileStatus[i].getPath().getName() + File.separator + suffixPath);
}
} catch(Exception e) {
e.printStackTrace();
}
return hdfsPaths;
}
注意: 这个方法的 prefixPath : 就是上面所写的那个路径。只要传递正确就可有循环获取到。
(3):简单看下怎么读取里面的url就可以了,其它的类似。
/**
* get list<String>
* @param hdfsPath
* @return
*/
public static List<String> getUrl(String hdfsPath) {
List<String> urls = new ArrayList<String>();
try {
reader = new ContentReader(hdfsPath);
Content content = new Content();
while(reader.next(content)) {
String url = content.getUrl() != null ? content.getUrl() : "";
urls.add(url);
}
} catch (Exception e) {
e.printStackTrace();
}
return urls;
}
发表评论
-
nutch-1.2结合hadoop分布式搜索
2011-07-13 10:50 2658nutch-1.2结合hadoop分布式搜索。 1、网上关于 ... -
nutch-1.x分布式索引指定
2011-07-04 17:15 12711、nutch-1.x中在crawl.java中。最后有这么一 ... -
在nuthc中加入中文分词
2011-05-15 11:41 600nutch实用的分词是默认的,对中文支持的不是很好。 网上有 ... -
nutch1.2中加入中文分词以及搜索错误解决
2011-03-02 12:15 1431在nutch当中加入中文分词。这里我使用的IK_Analyze ... -
使用ant编译时错误:Specify at least one source--a file or resource
2011-02-22 11:12 2458将命令环境切换到Nutch目录下,执行ant命令。出现如下错误 ... -
readdb导致fetch job中断的问题
2011-02-16 13:39 1653Nutch readdb命令可以用来统计目前crawldb库里 ... -
Nutch fetch job中时间的分配比例
2011-02-16 13:38 1330下面是nutch fetch job中map shuffle ... -
nutch UI 多台机子部署有关jetty配置servlet的问题
2010-01-18 17:35 2464我们jetty是一个小型的web服务器,可以嵌入到程序当中去, ... -
nutch中plugin.folders的配置
2009-12-21 18:07 2421今天在公司做nutch的调试时,犯了一个低级的错误,在这里记录 ... -
把另外的一个项目加入了nutch中来
2009-12-20 23:59 1087周末在家闲的慌,把在公司搞的nutch拿回来在家里试着做了下, ... -
今天来用一个例子来详细讲解下nutch当中到底是如何自定义插件的
2009-12-17 10:29 1658接上面一篇,今天来用一个例子来详细讲解下nutch当中到底是如 ... -
nutch plugin详细分析
2009-12-16 18:06 1389当某个插件需要被加载时, Nutch 会加载所有插件的相关接口 ... -
nutch plugin的流程以及如何自定义plugin
2009-12-16 18:04 1988PluginRepository 是plugin的入口,保存了 ... -
Nutch1.0 Ui启动在tomcat中的配置
2009-12-07 14:09 1349<!-- @pa ... -
nutch如何才能抓取到动态的url
2009-11-25 15:27 5346http://www.tianya.cn/new/Tianya ... -
配置完成nutch容易出现的错误
2009-11-25 11:50 24801.1.2 运行crawl报错Job failed Ex ... -
在eclipse中如何配置nutch1.0
2009-11-25 11:44 1428<1>: 首先从http://apache.eto ... -
nutch的基本工作流程理解
2009-11-21 00:17 1894(一):Nutch的工作流程: Crawdb、l ... -
cygwin配置说明
2009-11-21 00:15 2358开始,一步一步来:了解Cygwin的人都知道,就是到 : ht ... -
第一次使用nutch
2009-11-19 23:13 1250Nutch 是一个基于Lucene开发的诞生不久的开放源代码( ...
相关推荐
在这个场景中,我们关注的是如何利用 Nutch 来读取搜索结果目录的统计数据以及提取链接结构信息。 1. **readdb 命令**: `readdb` 是 Nutch 提供的一个工具,用于分析 Crawldb(爬行数据库)的内容。这个工具能够...
Apache Nutch 是一个流行的开源网络爬虫项目,用于抓取和索引互联网上的网页。在深入理解 Nutch 的工作原理之前,了解其源码是至关重要的。本文将解析 Nutch-0.9 版本中的 `Crawl` 类,它是 Nutch 抓取流程的起点。 ...
Nutch 是一个开源的网络爬虫项目,它提供了灵活的数据抓取能力,并支持二次开发定制功能。本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对腾讯微博进行抓取分析,特别强调了针对动态网页的抓取及自定义解析插件...
- **Segments 数据的读取**: Segment是Nutch存储抓取数据的基本单元,包含每个网页的原始数据、元数据以及索引信息。 - **FetchedSegments 类**: 提供了访问和分析Segment中已抓取网页数据的功能,包括HTTP响应状态...
Nutch是Apache开发的一款开源网络爬虫项目,用于抓取互联网上的网页并建立索引,以便于搜索引擎进行数据处理。然而,在实际使用过程中,由于编码问题,Nutch可能会出现部分网页乱码的情况。本篇文章将深入探讨这个...
8. **索引存储**:Nutch 可以将抓取的网页数据存储在各种后端,如 HDFS 或者本地文件系统,索引可以被 Elasticsearch 或者 Solr 等搜索引擎读取。 9. **爬虫调度**:Nutch 使用一个调度器(如 FairScheduler 或 ...
**Nutch**是一个开源的Web抓取框架,它不仅能够帮助开发者抓取网络上的数据,还促进了多个重要开源项目的诞生和发展。通过Nutch项目,衍生出了几个在大数据处理领域非常著名的框架: 1. **Hadoop**:一个能够处理...
Nutch是一个开源的Web爬虫框架,它能够抓取互联网上的网页并进行索引,非常适合用于大数据分析和搜索引擎的构建。本篇文章将深入探讨如何使用Java来获取Nutch中存储的网页信息。 首先,我们需要理解Nutch的工作流程...
Nutch是一个广泛使用的Web爬虫,它能够抓取网页并进行索引,以便于后续的搜索和分析。为了使Nutch能够处理RTF和MP3这样的非HTML内容,我们需要集成特定的库来解析这些格式。 首先,让我们深入了解一下RTF库。RTF是...
Nutch是一个开源的网络爬虫项目,用于抓取网页并构建索引。在描述中提到,MP3文件信息解析可以与Nutch结合,这可能是为了在爬取网页时识别和处理MP3链接,提取音频文件的元数据,从而丰富索引内容。Nutch的`parse-...
6. **段(Segment)**:Nutch将抓取的网页数据分段存储,每个段是一个独立的、可索引的数据单元。`SegmentReader`和`SegmentWriter`分别用于读写段数据。 7. **链接库(LinkDB)**:Nutch维护了一个链接数据库,...
6. **与Solr或Elasticsearch集成**:Nutch抓取的网页数据可以导入到Solr或Elasticsearch中,提供更高级的搜索功能和界面。 在《Lucene+nutch开发自己的搜索引擎 part2》中,作者通过实例详细讲解了如何使用Lucene...
### Nutch解析器parse部分代码解析 #### 一、引言 ...对于开发者而言,掌握Nutch解析器的核心逻辑是非常有帮助的,它能够帮助我们在实际项目中更加灵活地运用这一工具,提高数据抓取和处理的效率。
4. **测试**:运行 Nutch 的爬虫功能,查看是否能够将抓取的数据成功推送到 Solr 中进行索引。 #### 六、Nutch 的使用与调试 1. **配置文件**:修改 Nutch 的配置文件,如 `nutch-site.xml`,设置爬取深度、并发...
在上述过程中,JID3Lib 和 RTF-Parser 这样的插件确保了 Nutch 能够正确处理和索引非标准格式的数据,比如音频链接和 RTF 文档,从而增强其搜索引擎的能力。 总结来说,JID3Lib 和 RTF-Parser 是 Nutch 索引和理解...
Nutch是一个开源的网络爬虫项目,用于抓取互联网上的网页并建立索引。它集成了Lucene,实现了大规模网页的搜索引擎功能。Nutch的工作流程包括: 1. **抓取**:通过URL种子开始,不断发现新的链接并下载网页。 2. **...