gpt4 book ai didi

hadoop如何从 map 作业生成输入

转载 作者:可可西里 更新时间:2023-11-01 14:59:25 26 4
gpt4 key购买 nike

我需要 Map 作业生成一组输入记录,这些记录应该被馈送到 Map 作业(通过 JobTracker?)。

我想不出解决办法,需要你的帮助。

更多详情: 我打算写网络爬虫。初始根级网页将输入到 mapreduce 作业。 Mapper/reducer 将获取网页并从该页面收集链接。这些链接应被视为 mapreduce 作业的输入。所以我想将这些链接推送到 jobtracker,以便可以像对第一个根节点所做的那样处理它们。我们可以添加一些终止条件(例如链接正则表达式匹配)。如果正则表达式匹配,则它不会通过 map(或 reduce)任务返回到 jobtracker。

最佳答案

构建您的作业,以便映射器获取 URL 列表并为每个 URL 运行一堆爬虫。因此,您的第一次提交将是一个只有一个 URL 的文件。映射器的输出将是页面上找到的链接列表。 reducer 只会将映射器的输出合并到一个文件中。

实现后,您可以使用上一个作业的输出开始下一个作业。在第一阶段,您将只运行映射器,因为您的 URL 列表将非常短,但最终您将能够利用整个集群。您可以尝试更改 HDFS block 大小以获得最佳利用率。或者,您可以简单地将初始未充分利用视为启动成本,随着工作的进展而消失。此外,如果您在 AWS 上运行,这对您来说可能是一件好事,因为您最初可以从非常小的集群开始,然后购买更多机器加入您的集群。

此设置有一个陷阱,您需要注意不要访问您已经访问过的链接。如果 URL 列表很小,这可能非常容易,但如果您试图抓取整个互联网,则需要一些聪明的解决方案。

关于hadoop如何从 map 作业生成输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com