Hadoop权威指南-读书笔记
1.MapReduce
MapReduce 作业(job)是客户端需要执行的一个工作单元,包括输入数据,MapReduce 程序和配置信息。Hadoop
将作业分为若干个任务(task)来执行,包括 map 任务和 reduce 任务,任务运行在节点上,通过 YARN 进行调度。 Hadoop
对数据进行分片,对每个分片构建一个 map 任务。map 任务输出的是中间结果,经过 reduce 任务处理过之后才是最终输出结果。
2.HDFS
- 超大文件
- 流式数据访问
构建思路:一次写入,多次读取是最高效的访问模式
每次分析都涉及该数据集的大部分数据
- 商用硬件
不需要运行在昂贵且高可靠的硬件上
- 非低延迟的数据访问
HDFS 不适合要求低时间延迟的应用,因为 HDFS 是为高数据吞吐量优化的
如果需要低延迟的访问需求,可以考虑 HBase
- 大量文件
namenode 将文件系统元数据存储在内存中,因此文件系统能存储的文件总数受限于 namenode 的内存容量。
- 多用户写入
HDFS 文件写入支持单个写入者,而且每次写操作是在结尾 apend 的形式,不支持多个写入者,也不支持在文件任意位置修改