Hadoop学习<三>--前两节回顾,hadoop两节


hadoop的MapReduce的优点:易于编程,良好的扩展性,高容错性(在分布式环境中,随着集群规模的增加,集群中的故障率,如磁盘损坏,机器宕机等,会显著增加,进而导致任务失败和数据丢失恶毒可能性增加)。
Hadoop MapReduce对外提供了5个可编程组件,分别是InputFormat、Mapperpartitioner、Reducer和OutputFormat。
MapReduce 的一些典型应用,包括分布式grep、URL 访问频率统计、Web 连接图反转、倒排索引构建、分布式排序等,这些均是比较简单的应用
大数据,Top K问题:
在搜索引擎领域中,常常需要统计最近最热门的K 个查询词,这就是典型的“Top K”问题,也就是从海量查询中统计出现频率最高的前K 个。该问题可分解成两个MapReduce作业,分别完成统计词频和找出词频最高的前K 个查询词的功能。这两个作业存在依赖关系,第二个作业需要依赖前一个作业的输出结果。第一个作业是典型的WordCount 问题。对于第二个作业,首先map() 函数中输出前K 个频率最高的词,然后由reduce() 函数汇总每个Map 任务得到的前K 个查询词,并输出频率最高的前K 个查询词。

HDFS 是一个具有高度容错性的分布式文件系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

Hadoop MapReduce 处理的数据一般位于底层分布式文件系统中。该系统往往将用户的文件切分成若干个固定大小的block 存储到不同节点上。默认情况下,MapReduce 的每个Task 处理一个block。 MapReduce 主要由四个组件构成, 分别是Client、JobTracker、TaskTracker 和Task,它们共同保障一个作业的成功运行。一个MapReduce 作业的运行周期是,先在Client 端被提交到JobTracker 上,然后由JobTracker 将作业分解成若干个Task,并对这些Task 进行调度和监控,以保障这些程序运行成功,而TaskTracker 则启动JobTracker 发来的Task,并向JobTracker 汇报这些Task 的运行状态和本节点上资源的使用情况。

相关内容