`
peigang
  • 浏览: 170709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nutch1.4 分布式爬取

 
阅读更多

从nutch1.3开始本地抓取(单机),分布式抓取(集群)所使用的配置文件和命令单独分开。
NUTCH_HOME/conf 为分布式抓取所用配置文件
NUTCH_HOME/runtime/deply/bin/nutch 分布式抓取命令
NUTCH_HOME/runtime/local/conf 为本地抓取所用配置文件
NUTCH_HOME/runtime/local/bin/nutch 本地抓取命令

另外,修改了NUTCH_HOME/conf下的配置文件,需要重新编译之后才能生效。

爬取命令分别如下:

单机:

 

 

*/nutch1.4/runtime/local/bin/nutch.sh crawl urls -solr http://address:point/solr -dir crawl -depth 2 -threads 1 -topN 100

 集群:

 

 */nutch1.4/runtime/deploy/bin/nutch.sh crawl urls -solr http://address:point/solr -dir crawl -depth 2 -threads 1 -topN 100

 环境准备:

1、配置hadoop,确保hadoop运行正常。(hadoop配置请参考文章。《hadoop集群配置》

2、将hadoop/conf目录中的配置文件拷贝到nutch/conf中,使nutch绑定hadoop。

 

 程序准备:

1、将nutch1.4拷贝到其他集群机器中采用保证存放目录结构相同;

2 、运行本文所示集群脚本,可能出现如下错误:

 

12/06/18 02:49:27 INFO mapred.JobClient: Running job: job_201206180227_0001
12/06/18 02:49:28 INFO mapred.JobClient:  map 0% reduce 0%
12/06/18 02:49:48 INFO mapred.JobClient: Task Id : attempt_201206180227_0001_m_000000_0, Status : FAILED
java.lang.RuntimeException: Error in configuring object
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:432)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1083)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88)
        ... 9 more

无法找到plugins导致的问题,将如下配置加入nutch-default.xml中

 

<property>
  <name>plugin.folders</name>
  <value>./plugins</value>
  <description>Directories where nutch plugins are located.  Each
  element may be a relative or absolute path.  If absolute, it is used
  as is.  If relative, it is searched for on the classpath.</description>
</property>
 

  重新编译并部署,将编译后的nutch-*job拷贝到deploy下,注意文件命名格式必须符合要求。默认的文件名apache-nutch-*-SNAPSHOT.job会导致 java.io.IOException异常。

 

 总结:deploy中只需要bin和*.job文件就可以集群运行。所以配置都针对*.job中的各项文件、路径,以上配置经过多次测试确认,以供参考。

 

 

 --------------------------------------------------------

 单点环境爬取:

 分布式爬取各个步骤无法有效监控,单点爬取是测试验证程序的一个办法。

单点爬取只是将deploy中的*.job文件进行了分别的维护,包括bin、conf、lib、log、plugins。只需将项目对应目录中的文件拷贝到单点环境即可。拷贝完后执行 bin/nutch ******* 。如果爬取失败,则可以根据log中的日志跟踪来进行处理。一般情况下先检查各目录中的文件是否同步完毕,特别是lib中的*.jar文件是不是全部引入等等。

 

 

 

 

 

分享到:
评论
5 楼 peigang 2012-09-07  
hahsuu 写道
前面的叙述我觉得不是太清楚,重新组织一下。
你好,这里有个问题想请教一下:
修改了NUTCH_HOME/conf下的配置文件,需要重新编译之后才能生效,我的理解是将相关的配置文件打包在nutch-*job文件中,现在有个疑问是:对于nutch绑定hadoop的操作,是放在重新编译之前做,还是放在重新编译之后做。如果放在重新编译之前做,那么每次增加新hadoop结点,每次都要重新编译了吗?盼解答。

问题问的很好。其实只需要将core-site.xml,hdfs-site.xml,mapred-site.xml复制到nutch中即可。这些配置文件中不涉及子节点的设置。所以当配置好hadoop后再配置nutch。以后增加节点跟nutch也没有关系。nutch指向namenode的配置不能有变化。
4 楼 hahsuu 2012-09-03  
前面的叙述我觉得不是太清楚,重新组织一下。
你好,这里有个问题想请教一下:
修改了NUTCH_HOME/conf下的配置文件,需要重新编译之后才能生效,我的理解是将相关的配置文件打包在nutch-*job文件中,现在有个疑问是:对于nutch绑定hadoop的操作,是放在重新编译之前做,还是放在重新编译之后做。如果放在重新编译之前做,那么每次增加新hadoop结点,每次都要重新编译了吗?盼解答。
3 楼 hahsuu 2012-09-03  
你好,这里有个问题想请教一下:
修改了NUTCH_HOME/conf下的配置文件,需要重新编译之后才能生效,我的理解是将相关的配置文件打包在nutch-*job文件中,现在有个疑问是:nutch绑定hadoop,应该是在重新编译之前绑定,还是在先绑定,再编译。如果是后者,每次增加新hadoop结点,每次都要重新编译了吗?盼回答。
2 楼 peigang 2012-07-08  
runtime/local/ 直线 bin/nutch 试试。查看错误日志,还有可能是plugin.folders配置问题。
1 楼 finger321 2012-07-06  
你好,我按照你的配置,我出现了如下这样的错误:
root@SZ11101345c02:/home/mos/nutch_src/branch-1.5# runtime/local/bin/nutch crawl urls -dir crawl -depth 3 -topN 5
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.
Can't find Hadoop executable. Add HADOOP_HOME/bin to the path or run in local mode.

相关推荐

    nutch1.4帮助文档

    nutch1.4帮助文档,学习nutch1.4必备,最新nutch1.4核心类解读!

    nutch_1.4在windows下安装配置.pdf

    ### Nutch 1.4 在 Windows 下的安装与配置知识点详解 #### 一、Nutch 简介 - **定义**: Apache Nutch 是一款基于 Java 的开源网页爬虫项目,能够自动抓取互联网上的网页及其内部链接,并对其进行索引处理。 - **...

    nutch_1.4配置

    ### Apache Nutch 1.4在Windows下的安装与配置详解 #### 一、Apache Nutch简介及重要性 Apache Nutch是一款用Java语言编写的开源网络爬虫项目,旨在自动化地抓取网页中的链接,检查并修复坏链接,以及创建已访问...

    apache-nutch-1.4

    - **分布式存储**:Nutch 1.4使用Hadoop的HDFS(Hadoop Distributed File System)存储抓取的网页和索引数据。 - **MapReduce**:Nutch的大部分处理任务都是通过Hadoop的MapReduce模型执行的,实现了并行处理和...

    Nutch1.4_windows下eclipse配置图文详解.docx

    ### Nutch 1.4 在 Windows 下 Eclipse 配置图文详解 #### 一、环境准备与配置 **1.1 JDK 安装** - **版本选择**:文档中提到使用了 JDK1.6,官方下载地址为:[JDK6]...

    apache-nutch-1.4-bin.tar.gz.part2

    apache-nutch-1.4-bin.tar.gz.part2

    nutch分布式搜索索引热替换程序

    在大型系统中,为了处理海量数据,Nutch通常会与Hadoop等分布式计算框架结合,实现分布式搜索。在分布式环境中,索引热替换是一项重要的技术,它允许在不影响搜索服务的情况下更新索引。 分布式搜索索引热替换程序...

    apache-nutch-1.4-bin.tar.gz

    - **Hadoop 集成**:Nutch 1.4 与Hadoop的兼容性更强,可以在大规模分布式环境中运行。 **部署和使用 Nutch 1.4:** 1. **解压**:首先,你需要将"apache-nutch-1.4-bin.tar.gz"解压到本地目录,得到Nutch的运行...

    nutch网页爬取总结

    1. **Hadoop 集成**:Nutch 可以与 Hadoop 集成,利用分布式计算处理大规模的抓取任务。 2. **插件体系**:Nutch 采用插件架构,用户可以根据需要编写自定义的抓取、解析、分析等插件。 3. **多语言支持**:Nutch ...

    Linux下Nutch分布式配置和使用

    Linux下Nutch分布式配置 使用:分布式爬虫、索引、Nutch搜索本地数据、Nutch搜索HDFS数据。

    apache-nutch-1.4-src.tar.gz_nutch_搜索引擎

    4. **存储系统(Storage System)**:Nutch 使用Hadoop分布式文件系统(HDFS)存储抓取的网页和索引数据。Hadoop允许Nutch在大规模集群上处理数据,提供高可用性和容错性。 5. **搜索接口(Search Interface)**:...

    Apache Nutch 网络爬虫.rar

    这些组件相互协作,通过消息队列来传递数据,从而实现高效的分布式爬取。 三、配置Nutch 在使用Nutch之前,需要先进行配置。主要包括设置爬取的起始URL、定义抓取的深度和数量、指定存储数据的目录等。Nutch通过一...

    Nutch-1.0分布式安装手册.rar

    Nutch-1.0分布式安装手册是一份详细指导如何在多台计算机上部署和配置Apache Nutch的文档。Apache Nutch是一款开源的网络爬虫软件,用于抓取互联网上的网页并进行索引,是大数据领域中搜索引擎构建的重要工具。这份...

    nutch爬虫资料

    了解Hadoop的MapReduce模型、HDFS文件系统以及YARN资源调度器,能帮助你更好地理解和优化Nutch的分布式爬取过程。 总之,这份“nutch爬虫资料”涵盖了从理论到实践的全面内容,无论你是初学者还是经验丰富的开发者...

    apache-nutch-1.4-bin.part2

    apache-nutch-1.4-bin.part2

    apache-nutch-1.4-bin.part1

    apache-nutch-1.4-bin.part1

    apache-nutch-1.4-bin.tar.gz.part1

    apache-nutch-1.4-bin.tar.gz.part1

Global site tag (gtag.js) - Google Analytics