查看: 10495| 回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

[题目讨论] fb面经题web crawler讨论

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
在面经版看到这道系统设计题出现在很多fb面经里,看大家的讨论交流还是有一些不懂的地方,有大牛可以讲解一下思路吗?

给你10K个机器,然后1B的url,机器之间不能通信,问你怎么样每个机器才能平均的分任务

http://www.1point3acres.com/bbs/thread-268942-1-1.html
帖子的楼主在3楼说了一下面试时被面试官引导的方向
“思路就是每台机器都从起始点开始,然后对拿到的url做hash,事先规定好每台机器都只做那些hash value的job,如果hash的值跟当前机器的预定值不一样就skip,一样才继续crawl”

10k机器,都从起点开始,可是起点hash之后只会对应到一台机器,按照^说的方向,那其他所有机器都不用爬就一直空闲下去了?

上一篇:如何设计一个图片上传系统
下一篇:关于电梯设计问题, Follow up求解答

本帖被以下淘专辑推荐:

推荐
hanzhaogang 2019-1-30 22:57:10 | 只看该作者
全局:
我理解其实就是一致性哈希啊。但是在分配任务之前,需要找到这1B个link,对它们做hash啊。这个事情并不能分布式的做。
回复

使用道具 举报

推荐
qwerasdf1144 2021-12-16 06:57:01 | 只看该作者
全局:
所以这玩意能叫去中心的?概念上还是需要控制部件而且互相之间还要去重
回复

使用道具 举报

推荐
xiaok1981 2019-3-13 04:36:40 | 只看该作者
全局:
consistent hashing..   look at dynamo paper
回复

使用道具 举报

🔗
swxe 2019-1-5 05:22:53 | 只看该作者
全局:
谢谢分享,虽然有段时间了还是回复下。
如果只能遍历所有数据,一共10K台机器,一起遍历,没有数据库能承受这么大的load。有两种解决方法:
1 分拆数据库,按照hash range拆分,然后每一百个机器对应一个数据库instance
2 在crawler之前加一层,叫dispatcher,有比如100个,每个dispatcher负责一个range,分配任务给下面的crawler。

当然还要继续考虑dispatcher down了怎么办 。。。

觉得有用请给点米,新人需要

评分

参与人数 1大米 +3 收起 理由
小狗雪碧 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
这是经典的distributed hash table 问题. 从root url开始,下载webpage,从这个page里提取embedded url links, distribute 每个link 到对应负责任的machine. In general, 毎个机器接收url links from peers, 看是否已经访问过,没有的话,放入work queue, 有个thread 专门从queue取url, download page, extract urls, distributes to other machines.
回复

使用道具 举报

🔗
小狗雪碧 2019-1-19 02:19:57 | 只看该作者
全局:
swxe 发表于 2019-1-5 05:22
谢谢分享,虽然有段时间了还是回复下。
如果只能遍历所有数据,一共10K台机器,一起遍历,没有数据库能承 ...

谢谢分享啊,请问能再详细一点吗?
回复

使用道具 举报

🔗
swxe 2019-1-19 05:26:46 | 只看该作者
全局:
小狗雪碧 发表于 2019-1-19 02:19
谢谢分享啊,请问能再详细一点吗?

比如有1 billion url需要定期的crawl。简单的做法,每个url一个hash,hash的取值范围就是1 到 1billion。把hash分成10K个组,每个组一个range。这个range就是一个partition,或者叫shard。每台机器就负责一个shard。

更好的做法可以参考consistency hash,或者直接用cassandra存取这些URLs。可以到几百上千的node,支持10K机器没啥问题。

希望对你有用
回复

使用道具 举报

🔗
小狗雪碧 2019-1-19 05:30:48 | 只看该作者
全局:
swxe 发表于 2019-1-19 05:26
比如有1 billion url需要定期的crawl。简单的做法,每个url一个hash,hash的取值范围就是1 到 1billion。 ...

哦好的 谢谢了!很有帮助
回复

使用道具 举报

🔗
Augustus 2022-1-2 05:02:32 | 只看该作者
全局:
不能通信连 DHT都不行,完全没法handle delete/add nodes的情况
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表