当前位置: 首页 > 知识库问答 >
问题:

Hadoop 1.2.1上的Apache Nutch 1.9在jar文件中没有Crawl类

罗智志
2023-03-14

我正在运行一个由五个立方体板组成的集群,这些立方体板上安装了Hadoop 1.2.1(因为32位)。有一个名称节点和四个从属节点。

在我的最后一篇论文中,我想安装Apache Nutch 1.9和Solr用于大数据分析。我做了如下设置说明:http://wiki.apache.org/nutch/NutchHadoopTutorial#Deploy_Nutch_to_Multiple_Machines

启动Jar作业文件以在整个集群上部署Nutch时,会出现“找不到类”异常,因为自Nutch 1.7以来,再也没有爬网类了:http://wiki.apache.org/nutch/bin/nutch爬网即使在源文件中也会被删除。

然后显示以下错误:

Hadoop jarapache-nutch-1.9.joborg.apache.nutch.crawl.抓取网址-dir抓取深度3-topN 5警告:不建议使用$HADOOP_HOME。

线程“main”java中出现异常。lang.ClassNotFoundException:组织。阿帕奇。纳奇。爬行在java上爬行。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:217)。安全AccessController。java上的doPrivileged(本机方法)。网URLClassLoader。java上的findClass(URLClassLoader.java:205)。lang.ClassLoader。java上的loadClass(ClassLoader.java:321)。lang.ClassLoader。java上的loadClass(ClassLoader.java:266)。lang.Class。java上的forName0(本机方法)。lang.Class。forName(java类:266)

我在包中找到的其他类似乎都可以工作,环境设置应该没有问题。

您必须在整个集群上执行爬网的备选方案有哪些。自Nutch版本2.0以来,有一个爬虫类。但不是在1.9中:(

任何帮助都非常感谢。谢谢你。

共有1个答案

范翰海
2023-03-14

我认为您应该使用bin/crawl脚本,而不是将nutch作业提交给hadoop。为此,您需要执行以下操作:

>

  • 下载Nutch 1.9源代码,假设您将源代码提取到Nutch-1.9中
  • 导航到ntuch-1.9并运行:

    ant build
    

    一旦建造完成,运行

    cd runtime/deploy
    
    hadoop fs -put yourseed yourseedlist
    
    bin/crawl seed.txt crawl http://yoursolrip/solr/yoursolrcore
    

    我希望这会有所帮助。

  •  类似资料:
    • 问题内容: 我的GUI上有6个JButton,上面都有图像,当我编译并运行 代码时,JButtons上的所有图像均显示完美,但是在可运行的JAR文件中, JButtons上的图像却没有显示..如何解决此问题? 我在代码中使用此方法在JButtons上显示图标 问题答案: This (as pointed out by a number of people) 建议您要加载从图像bin/images关

    • 我正试图使用ProGuard混淆我的JAR文件。 明确地我有一个Java/Spring web应用程序。所以我制作了一个WAR文件。 我已将所有类从WAR文件的/WEB-INF/classes文件夹复制到一个新的JAR文件中。 我启动了ProGuard GUI,并选择了我的JAR文件作为输入。我指定了一个新的输出。JAR文件。我添加了所有的 /WEB-INF/lib/*. jar文件作为"库罐"。

    • 问题内容: 我试图在不实际使用用户输入文件的情况下伪造文件上传。文件的内容将从字符串动态生成。 这可能吗?有人做过吗?有例子/理论可用吗? 澄清一下,我知道如何使用隐藏的iframe和朋友使用AJAX技术上传文件-问题是上传的文件格式不正确。 我正在使用ExtJS,但是jQuery也是可行的,因为ExtJS可以插入其中(ext-jquery-base)。 问题答案: 为什么不只与POST一起使用?

    • 我有一个运行大型企业应用程序的场景。 我有一个没有@SpringBootApplication的应用程序,叫做XYZ应用程序。应用程序没有在ABC应用程序中自动连接,ABC应用程序有@SpringBootApplication,我在Intellij中运行它。如何确保在运行应用程序时创建bean 注意:我将XYZ应用程序的JAR作为渐变版本。XYZ api和XYZ impl有单独的JAR。 我得到的

    • 我已经看了几个不同的线程,没有找到解决方案。我做了一个项目,使用java和Gradle从google sheets检索数据。我已经创建了一个工件,并通过IntelliJ构建了jar文件。当我尝试使用“java-jar filename.jar”通过终端运行jar时,我得到“no main manifest attribute,in filename.jar” My Manifest.mf位于mai

    • 问题内容: 我正在尝试使用ajax上传文件,这给了我一个错误,其余的数据上传成功了,我尝试了不使用ajax进行文件上传,但是当我尝试通过ajax上传文件时给了我错误,我完全困惑为什么ajax给我问题。这是我的代码。 process.php文件编码在这里。 问题答案: 首先,serialize()函数不适用于文件,您应该使对象成为可通过其发布数据的表单对象,并且可以完美地工作。因为我已经测试过了 请