草庐IT

hadoop - 如何使用 pig 脚本从网络爬网数据中提取特定数据(nutch)

此示例使用nutch2.3.1抓取数据,其中我需要获取标题和url内部链接和网站附带的外部链接,欢迎任何建议。我用这个命令从hbase导入数据到pig`data9=load'hbase://htest15_webpage'usingorg.apache.pig.backend.hadoop.hbase.HBaseStorage('f:cnt','-loadKeytrue');`column=f:cnt,timestamp=1487743991250,value=\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0

获取时的 Apache Nutch 2.3.1 扩展点

我已成功配置Hadoop(2.x)、Hbase和Nutch2.3.1。我还抓取了一些示例页面也用于测试。现在我必须使用开源工具cld2对特定语言进行集中爬取。如果抓取的文档不包含该特定语言,则不应保存该文档(在Hbase中),也不应将其索引到Solr。在NutchWIKI,在获取时没有给出扩展点。有没有其他可能的方法来完成这项工作? 最佳答案 目前Nutch附带的fetchers实现中没有扩展点。如果您考虑一下,您需要获取和解析文档(以提取语言),然后您可以编写自己的IndexingFilter来检查文档的语言并决定是否要索引它与否

apache - 如何限制 Apache Nutch 2.3.1 抓取故事内容而不是边栏

我必须抓取一些新闻网站。我已经使用Hadoop2.7.4和Hbase集群设置了apacheNutch2.3.1。我必须通过solr6.6.1提供搜索。在爬取一些网站后,我观察到Nutch会爬取一个页面中的所有内容。在新闻网站中,有包含最新或热门新闻等的侧边栏。这些侧边栏内容随时间而变化。有没有办法让Nutch爬取主要故事内容并避免出现此类侧边栏。 最佳答案 嗯,因为您使用的是Nutch2.x,所以这有点困难,对于Nutch1.x,您可以使用Tika上提供的样板管道实现。但不幸的是,它还没有移植到2.x分支。

hadoop - 如何在伪分布式安装的Hadoop中运行Nutch

我在我的Ubuntu上安装了Nutch1.13。我可以在独立模式下运行爬网。它成功运行并产生了预期的结果,但我现在不知道如何在hadoop中运行它?我在伪分布式模式下安装了Hadoop,我想使用Hadoop运行Nutch爬网并监控它。我该怎么做?有很多关于在独立模式下运行它的教程,但我找不到任何关于如何在Hadoop中运行它的明确说明,除了我必须在用ant构建它之后使用“NutchJob”。感谢您的帮助。 最佳答案 确保您已经从源代码构建了Nutch,即不要使用只能在本地模式下工作的二进制版本。一旦你用编译antcleanrunti

hadoop - Nutch 作为具有自定义处理管道的备用爬虫

我想将ApacheNutch用作蜘蛛,它只获取给定的url列表(不爬行)。url将存储在Redis中,我希望Nutch不断从列表中弹出它们并获取html。蜘蛛需要处于待机模式——它总是等待新的url进入Redis,直到用户决定停止工作。另外,我想将自己的处理管道应用于提取的html文件(不仅是文本提取)。可以用Nutch做吗? 最佳答案 StormCrawler更适合实现这一目标-它旨在满足您所描述的场景。你需要编写一个自定义的spout连接到redis,重用fetcher和解析器bolts,然后用你自己的处理添加bolts。SC的

java - Nutch-Hadoop :- how can we crawl only the updates in the url going for recrawl?

请有人告诉我如何识别要重新抓取的URL中的更新?当页面要重新抓取时,我只想抓取页面的更新内容,而不是已经抓取的旧内容。提前致谢。普拉亚.. 最佳答案 我想你的意思是,只有当内容在服务器端被修改时,你才想重新抓取url。您希望nutch识别它,从而明智地决定是否获取内容。Nutch有维护页面的“上次修改”时间的概念,并且在重新抓取页面时将其存储而不投入使用。Theyknew它会节省磁盘空间和带宽,但不会因为其他小东西而引起人们的兴趣。Peoplehadraised这个问题,但我仍然没有看到nutch开发团队的任何Activity。Ef

hadoop - 本地模式下的 Nutch 是否独立于 Hadoop?

我理解在deploy模式下运行Nutch是基于Hadoop的分布式爬虫,但是在local模式下运行时我无法完全理解。在那种情况下,Nutch是否独立于Hadoop?而且本地模式下的爬取过程不是基于MapReduce的吗? 最佳答案 Nutch是基于MapReduce的,不管它是如何运行的。Hadoop库是Nutch的依赖项,在本地模式下,Nutch将Hadoop相关库放在类路径中,并在单个JVM中运行。在分布式模式下,调用“hadoop”命令。参见NutchscriptPS:如果你在一台机器上使用Nutch,以伪分布式模式运行它是有

hadoop - Nutch FetchData 作业太慢

我正在使用ApacheNutch以编程方式在EMR集群中以6个周期抓取大约7000个URL(抓取过程中很少有自定义map-reduce作业)。版本是:nutch=v1.15hadoop=2.7.3我在具有20个EC2m4.largespot实例的AmazonEMR集群上运行它。抓取的代码是:publiccrawl(Folderseeds,Folderoutput)throwsIOException,InterruptedException{finalFoldercrawldb=output.folder("crawldb");try{newInjector(this.conf).inj

java - Apache nutch-2.2.1 执行出错

我已经在Ubuntu12.04中安装了Nutch2.2.1,但是在执行命令时./nutch抓取urls/-dir下载/-depth3-topN5我收到以下错误:-InjectorJob:使用类org.apache.gora.memory.store.MemStore作为Gora存储类。InjectorJob:过滤器拒绝的网址总数:0InjectorJob:归一化过滤后注入(inject)的url总数:0线程“main”中的异常java.lang.RuntimeException:jobfailed:name=generate:null,jobid=job_local1165582916

hadoop - 在 Apache Nutch 中爬行时出错

我已经在Hadoop(2.5.2)多节点集群(AWSEC2机器)上安装了ApacheNutch2.3.1。我相应地配置了Nutch文件(在主节点上)。我已将seed.txt文件(其中包含要抓取的url)从master文件系统移动到Hdfs文件系统。现在,我运行以下命令进行抓取,bin/hadoopjar/home/ubuntu/nutch/runtime/deploy/apache-nutch-2.3.1.joborg.apache.nutch.crawl.Crawlurls-dircrawl-depth1-topN5我遇到了错误,Exceptioninthread"main"java