【问题标题】:Using nutch in Windows 7在 Windows 7 中使用 nutch
【发布时间】:2012-12-24 07:03:54
【问题描述】:

我正在尝试在 windows 环境中使用 nutch 1.6,但每次尝试按照站点 Nutch Tuorial Apache 中给出的程序运行时,我总是会遇到以下异常:

Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ajayn\mapred\staging\ajayn-1231695575\.staging to 0700

我一直在网上广泛搜索,但没有具体的解决方案。请注意,我没有在系统中安装或运行 hadoop 实例,我唯一的目的是试用 nutch 作为网络爬虫代理。

是否可以在 Windows 中运行 nutch 1.6,如果可以,请提供有关如何进行操作并避免上述异常的任何指针。

PS:如果有帮助,/tmp/ 文件夹会附加一个只读属性,即使您尝试这样做也不会更改。同样来自 cygwin 我尝试将文件权限设置为 777,但每次我尝试运行 nutch 实例时,都会创建一个没有任何执行权限的新文件夹,例如:“ajayn-1231695575”。

谢谢

阿杰

【问题讨论】:

    标签: windows windows-7 cygwin nutch


    【解决方案1】:

    你试过GettingNutchRunningWithWindows from the Nutch Wiki吗?

    我的一些学生做了很多实验,下面是他们的工作结果:

    使用 nutch 1.7 测试 - http://www.apache.org/dyn/closer.cgi/nutch/1.7/apache-nutch-1.7-bin.zip 您还需要 cygwin

    1) 将 nutch 提取到没有空格的路径。例如:

     d:\dev\ir\nutch-1.7
    

    2) 将 jdk 复制到某个没有空格的地方。我试图在 cygwin 中创建一个符号链接,但它并不顺利。例如

    xcopy /S "C:\Program Files\Java\jdk1.7.0_21" c:\jdk1.7.0_21
    

    3) 在 cygwin 中设置 java 的路径

    3.1) export JAVA_HOME=/cygdrive/c/jdk1.7.0_21

    3.2) export PATH=$JAVA_HOME/bin:$PATH

    3,3) 通过调用 which java.xml 来检查一切是否正确。应该返回/cygdrive/c/jdk1.7.0_21/bin/java

    SO FAR - 修复了第一个问题 - java 路径不正确。现在到第二个问题 - hadoop 修补。

    4) 补丁hadoop

    https://issues.apache.org/jira/browse/HADOOP-7682
    https://github.com/congainc/patch-hadoop_7682-1.0.x-win
    

    简而言之: - 将patch-hadoop_7682-1.0.x-win.jar 放入d:\dev\ir\nutch-1.7\lib - 通过添加以下内容编辑d:\dev\ir\nutch-1.7\conf\nutch-site.xml

    <property>
       <name>fs.file.impl</name>
       <value>com.conga.services.hadoop.patch.HADOOP_7682.WinLocalFileSystem</value>
       <description>Enables patch for issue HADOOP-7682 on Windows</description>
    </property>
    

    5) Hadoop 临时目录 - 我不确定这是否有必要(在应用之前尝试),因为我在应用补丁之前添加了它,但在我的 d:\dev\ir\nutch-1.7\conf\nutch-site.xml 我有

    <property>
       <name>hadoop.tmp.dir</name>
       <value>C:\tmp\asd</value>
    </property>
    

    6) Hadoop 版本 - 我不确定这是否有必要(在应用之前尝试),我在找到补丁之前将 hadoop 降级为 hadoop-core-0.20.205.0.jar,但它仍然存在保留在我的设置中。 如果您觉得有必要,请点击此处:http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/0.20.205.0

    6.1) 将 hadoop-core-1.2.1.jard:\dev\ir\nutch-1.7\lib 移动到某个位置进行备份

    6.2) 下载hadoop-core-0.20.205.0.jard:\dev\ir\nutch-1.7\lib

    7) 一些抓取优化。如果您需要抓取大量网站,请不要从大量 url 列表、大深度和 topN 开始抓取。 如果这样做,您会看到 nutch 依次从同一站点一次获取一个链接,在两次获取之间等待 5 秒。 原因是深度 30 和 topN 200 很可能仅使用来自同一站点的链接填充第一个获取队列。 Nutch 不会尝试一次获取它们,因为默认情况下它被配置为不从同一站点获取多个线程。所以你注定要等待。很多。

    7.1) 要解决这个问题,首先运行几个小深度和 topN 的爬网 - 例如

    bin/nutch crawl urls -dir crawl -depth 3 -topN 4
    

    这将使用来自多个站点的 url 填充生成的提取队列

    7.2) 然后你可以尝试大晚上的爬行

    bin/nutch crawl urls -dir crawl -depth 20  -topN 150
    

    7.3.) 要允许一些多线程,请将以下内容添加到您的 nutch-site.xml。它将允许多个线程同时从同一主机获取。

    注意!在使用它们之前请阅读互联网上的属性的含义。

    <property>
      <name>fetcher.threads.fetch</name>
      <value>16</value>
    </property>
    <property>
      <name>fetcher.threads.per.queue</name>
      <value>4</value>
    </property>
    <property>
    <property>
      <name>fetcher.queue.mode</name>
      <value>byDomain</value>
    </property>
    <name>fetcher.threads.per.host</name>
       <value>8</value>
       <description></description>
    </property>
    <property>
      <name>fetcher.verbose</name>
      <value>true</value>
    </property>
    <property>
      <name>fetcher.server.min.delay</name>
      <value>5.0</value>
      <description>applicable ONLY if fetcher.threads.per.host is greater than 1 (i.e. the host blocking is turned off).</description>
    </property>
    </configuration>
    

    注意:当您抓取大量网站时,请确保您的 D:\Dev\id\apache-nutch-1.7\conf\regex-urlfilter.txt 仅包含您感兴趣的网站。否则,您最终会在磁盘上看到“Internet”。

    【讨论】:

      【解决方案2】:

      在 Nutch 1.3 之前我们也遇到了同样的问题,我们建议使用带有用于开发的虚拟盒和共享目录的 ubuntu vm 环境,这样您就可以在 Windows 上使用 ide 进行开发,然后部署到您的 vm 并在 Linux 上运行 Nutch。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 2014-04-16
        • 1970-01-01
        相关资源
        最近更新 更多