大数据:实现规模与伦理考量
1. MapReduce 编程基础
在大数据处理中,MapReduce 是一种强大的编程模型,在很多场景下都能发挥重要作用。以单词计数为例,即使处理庞大的文本语料库,最终也能将其简化为包含不同词汇及其频率计数的相对小文件,然后轻松汇总得到总计数。但对于 PageRank 计算,情况就复杂得多。在 PageRank 计算里,对于每个节点 v,需要汇总所有指向 v 的节点 x 的 PageRank 值,很难将图分割成独立部分,使所有 x 节点和 v 节点位于同一台机器上。这就凸显了 MapReduce 将数据放置在合适位置进行处理的核心意义。
MapReduce 编程的关键在于设置分布式哈希表的桶,让具有相同键的所有项映射到同一个桶。以下是几个具体应用场景:
- 单词计数 :要统计特定单词 w 在一组文件中的总频率,需将所有文件中该单词的频率计数收集到与 w 关联的单个桶中,然后相加得到最终总数。
- k - 均值聚类 :其关键步骤是更新最接近当前质心 c 的点的新质心 c′。将最接近 c 的所有点 p 哈希到与 c 关联的单个桶后,可一次性扫描该桶计算 c′。
- PageRank :顶点 v 的新 PageRank 值是图中所有相邻顶点 x 的旧 PageRank 值之和。将 x 的 PageRank 值哈希到所有相邻顶点 v 的桶中,就能在一处收集所有相关信息,进而一次性更新 PageRank 值。
这些算法可通过程序员编写的两个函数——map 和 reduce 来指定:
- Ma
大数据处理与伦理挑战
超级会员免费看
订阅专栏 解锁全文
1581

被折叠的 条评论
为什么被折叠?



