大数据必须掌握的三个基本算法

一全排序

大数据必须掌握的三个基本算法

Hadoop自带的Partitioner的实现有两种,一种为HashPartitioner, 默认的分区方式,计算公式 hash(key)%reducernum,另一种为TotalOrderPartitioner, 为排序作业创建分区,分区中数据的范围需要通过分区文件来指定。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

分区文件可以人为创建,如采用等距区间,如果数据分布不均匀导致作业完成时间受限于个别reduce任务完成时间的影响。

也可以通过抽样器,先对数据进行抽样,根据数据分布生成分区文件,避免数据倾斜。

注意,key可以是数字型,也可以是BinaryComparable(字符串),当是BinaryComparable时,则以key构造Trie Tree;否则以二分查找来确定key的所属区间。

二单词共现矩阵算法

大数据必须掌握的三个基本算法

其目的是在海量语料库中发现在固定窗口内单词a和单词b共同出现的频率,从而构建单词共现矩阵,这样的矩阵可以是对称的,也可以是不对称的,这要看具体的应用。

这种抽象化的任务的有效解决在实际生活中有着很多的应用。例如电子商家希望发现不同物品被同时购买的情况以便有效安排货物的摆放位置;同时对信息检索领域同义词词典的构建以及文本挖掘等都有着重要的实际应用价值。

根据同现关系的不同,可能需要实现和定制不同的FileInputFormat和RecordReader,如同现关系为一个英文句子,则需要实现以一个英文句子为单位的FileInputFormat和RecordReader,如同现关系为一个段落,则需要实现以一个段落为单位的FileInputFormat和RecordReader


三倒排索引

大数据必须掌握的三个基本算法

大数据必须掌握的三个基本算法

Inverted Index(倒排索引)是目前几乎所有支持全文检索的搜索引擎都要依赖的一个数据结构。基于索引结构,给出一个词(term),能取得含有这个term的文档列表(the list of documents),没什么可说的,必须掌握。

猜你喜欢

转载自blog.csdn.net/juan189/article/details/84932486