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

阿帕奇纳奇步骤解释

宇文梓
2023-03-14

我已关注文章:https://wiki.apache.org/nutch/NutchTutorial并设置apache nutch solr。但我想澄清一下,我是否正确理解了nutch步骤的工作。

1)。注入:在这一部分中,apache从给定的seed.txt读取url列表,将url与regex-urlfiler regex进行比较,并使用支持的url更新craldb。

2)。生成:bin/nutch生成cral/craldb爬/段Nutch从craldb获取URL并创建准备获取的URL的获取列表。它接受输入,如-topN和时间间隔等,然后在段下创建带有当前时间的目录。

我相信,在最初的两个步骤中,没有与互联网的互动。一切都发生在本地。

问:获取列表保存在哪里?

3).获取:bin/nutch获取爬网/段/

运行fetchList,从给定的URL中获取内容(和URL ),并将其保存在某个地方。

问:抓取是否会读取整个给定的 URL 页面(文本另一个 URL)?问:Nutch 在哪里保存获取的数据?

4). 解析:bin/nutch解析爬网/段/

它解析条目。

Q: 这里的parse是什么意思?Q: 我在哪里可以找到这一步骤的结果?

5).bin/坚果更新爬行/爬行/分段/

完成后,Nutch使用获取结果更新数据库

问:它是只使用解析后的数据更新crawldb还是同时更新其他数据?

请澄清我的疑虑。

共有2个答案

别俊誉
2023-03-14

对于注入和生成的前两个步骤,您的答案是写入。

我一步一步地回答你的问题:获取列表是在爬行的迭代中要获取的URL的列表。您可以使用generate.max.count属性配置提取列表的大小。生成的获取列表存储在相应段内的crawl_generate目录中。然而,你不能以二进制的形式阅读它。

在生成步骤之后是提取步骤,其中从Web中提取提取列表中的URL。它们存储在分段的crawl_fetch目录中。

获取URL后,将解析内容以获取outlinks、content、metadata等。解析步骤的输出位于段的craw_parse、parse_data、parse_text目录中。

解析完成后,我们用最近获取的网址中新找到的链接更新craldb。Crawldb只包含网址和与之对应的信息,如fetch_status、分数、modified_time等。你可以把它想象成一个存储网址信息的数据库。

当新的爬网迭代开始时,来自爬网数据库的新添加的url将插入到获取列表中,并且该过程将继续。

苏富
2023-03-14

您对第一步和第二步的假设是正确的。但是,您需要了解整个工作流程是如何发生的。当Nutch获取url时,它会以二进制形式获取网页数据或图像等数据,并使用名为Content的类将它们作为抓取数据存储到分段中。

稍后,在解析步骤中,存储的内容对象被解析为另一种称为 ParsedData 的数据格式,其中包括数据文本及其外链(如果可用)。解析数据将放回要在下一个作业批处理中处理的片段。在此步骤之后是爬网数据库更新作业,此处将上一步中的链接放回 crawldb 中,以更新页面排名和 Web 链接详细信息。

在索引步骤,来自分段的解析数据的信息被构造成字段。Nutch使用一个名为“NutchDocument”的类来存储结构化数据,nutch文档被放回到片段中,以供下一步处理。最后,Nutch将Nutch文档发送到索引存储器,如Solr或Elasticsearch。这是最后一步,在此阶段,如果不想再次将数据段发送到索引存储,可以删除这些数据段。换句话说,这是数据的遵循

种子列表-

我希望这能回答你的一些问题。

 类似资料:
  • Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?

  • 我正在使用Flink从Apache Pulsar读取数据。我在pulsar中有一个分区主题,有8个分区。在本主题中,我生成了1000条消息,分布在8个分区中。我的笔记本电脑中有8个内核,因此我有8个子任务(默认情况下,并行度=#个内核)。在执行Eclipse中的代码后,我打开了Flink UI,发现一些子任务没有收到任何记录(空闲)。我希望所有8个子任务都能得到利用(我希望每个子任务都映射到我的主

  • 我们需要的是直接的API来设置和使用集群消息队列。我们最初的计划是使用Camel在集群JMS或ActiveMQ队列上进行消费/生产。Kafka如何使这项任务变得更容易?在任何一种情况下,应用程序本身都将在WebLogic服务器上运行。 消息传递将是点对点类型,其中有多个相同服务的实例在运行,但根据负载平衡策略,只有一个实例应该处理消息并发出结果。消息队列也是群集的,因此服务实例或队列实例的失败都不

  • 目前我正在研究Apache spark和Apache ignite框架。 这篇文章介绍了它们之间的一些原则差异,但我意识到我仍然不理解它们的目的。 我的意思是,哪一个问题更容易产生火花而不是点燃,反之亦然?

  • 我正试图找出这两种设置之间的区别。大小和缓冲区。Kafka制作人的记忆。 据我所知。大小:这是可以发送的批次的最大大小。 文档描述了缓冲区。memory as:生产者可以用来缓冲等待发送的记录的内存字节。 我不明白这两者之间的区别。有人能解释一下吗? 谢啦

  • 我正在做一个学术项目,涉及传感器的流数据。我已经包围了苍鹭(Storm的接班人)和尼菲。两者都支持内置背压,这对我的项目至关重要。Apache Nifi和Heron之间的主要区别是什么? 哪款更适合物联网应用?