好友推荐系统的好友挖掘逻辑,其实用 Hadoop YARN 来跑还挺合适的。资源调度靠它搞定,运行效率也不差,尤其是你数据量一多,单机吃不消的时候,YARN 的分布式能力就派上用场了。

YARN 的架构分成三个部分:ResourceManagerNodeManagerApplicationMaster。嗯,简单说就是资源总管+每台机器的守门员+具体跑任务的小管家,分工还挺明确。

容器 (Container) 是个挺关键的东西,所有任务都得先申容器才能运行。每个容器里配了 CPU内存,你想跑 MapReduce 还是 Spark,都得走这个流程。

跑 MapReduce 时,流程是这样:先申资源再执行任务回收资源。每一步都能通过 YARN 的 UI 看到,调试起来方便。

至于推荐算法,你可以用协同过滤来挖相似用户,也可以用社交图去找潜在连接。先用 MapReduce 做特征,像用户打标签、点赞这些行为,完再交给 Spark 模型训练,实时推荐就更快了。

整个流程可以这么搭:HDFS 里放原始数据,用 MapReduce 提取用户特征,再把结果交给 Spark Streaming 做在线推荐。响应也快,推荐也精准。

调优的话,Container 配置队列策略要搞清楚。别一股脑全塞一个队列,多开几个分流也挺有用。还可以配合 HivePig 做数据,灵活性强。

监控方面,AmbariGanglia 还挺实用,出了问题能第一时间定位。任务失败了,YARN 会自动重试,不太容易崩。

如果你正在搭建类似的社交服务,想快速上线推荐系统,不妨试试用 YARN 把整个数据链条撑起来,稳定还省心。