大数据:实现规模化与伦理考量
1. MapReduce编程基础
在大数据处理中,MapReduce是一种强大的编程模型,它在处理大规模数据时表现出色。原则上,它适用于单词计数,因为即使是庞大的文本语料库,最终也能简化为包含不同词汇及其频率计数的相对较小的文件,这些计数可以轻松相加得出总数。
MapReduce编程的关键在于设置分布式哈希表的桶,相同键的所有项会被映射到同一个桶中。以下是几个常见的应用场景:
- 单词计数 :要统计特定单词w在一组文件中的总频率,需要将所有文件中该单词的频率计数收集到与w关联的单个桶中,然后在桶内将它们相加得到最终总数。
- k - 均值聚类 :k - 均值聚类的关键步骤是更新最接近当前质心c的点的新质心c′。将最接近c的所有点p哈希到与c关联的单个桶后,可以一次性遍历该桶计算c′。
- PageRank计算 :顶点v的新PageRank值是图中所有指向v的相邻顶点x的旧PageRank值之和。将x的PageRank值哈希到所有相邻顶点v的桶中,能将所有相关信息收集到合适的位置,以便一次性更新PageRank值。
这些算法可以通过程序员编写的两个函数来指定:map和reduce。
- Map函数 :遍历每个输入文件,根据需要哈希或发出键值对。以下是单词计数映射器的伪代码:
Map(String docid, String text):
for each word w
超级会员免费看
订阅专栏 解锁全文

17

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



