基本信息
【插图】

内容简介
作译者
目录
第1章 简介 1
第2章 HDFS 6
2.1 目标和动机 6
2.2 设计 7
2.3 守护进程 8
2.4 读写数据 10
2.4.1 数据读取流程 10
2.4.2 数据写操作流程 11
2.5 管理文件系统元数据 13
2.6 NameNode的高可用性 14
2.7 NameNode联盟 16
2.8 访问与集成 17
2.8.1 命令行工具 18
2.8.2 用户空间文件系统(FUSE) 21
2.8.3 表示状态传输(REST)的支持 21
第3章 MapReduce 23
3.1 MapReduce的若干阶段 24
3.2 Hadoop MapReduce简介 30
3.2.1 后台程序 31
媒体评论
——Tom White Cloudcra软件工程师、Apachc Hadoop技术专家、Apachc软件基金会成员
书摘
MapReduce集群成员和心跳的基础架构与HDFS是相匹配的,这毫不奇怪。TaskskTracker定期发送少量的心跳信息给.10bTracker,以表明它们还活着。再次声明,除非对于极端大规模的个案,管理员对此并不感觉头疼。客户端应用程序也没有直接和TaskTracker通信,而是针对JobTracket和HDFS进行大多数操作。在作业提交时候,.10bnacker通过少量RPC请求与NameNode通信。MapReduce真正的流量是在作业交织阶段里TaskTracker的流量。
随着map任务开始完成,redLice开始运行,每个reducer必须向每个TaskTracker获取属于其分区的map输出数据。该操作通过HTTP进行,并导致全网状通信;每个reducer(通常情况下)都要从每个tasktracker复制一定量的数据。此外,每个reducer允许一定数目的并发来取数据。虽然不同的作业有不同的数据量,但这个交织阶段在群集内占相当重大的横向流量。例如,一个需要将数据集中的每条记录进行变换的数据处理作业,通常会在:map任务中并行转换,这样做的结果往往导致大致相等大小的另一条记录必须经过交织和reduce阶段,并以新的格式写回HDFS。一个作业,如果它需要将输入的100万条大小为100KB的记录(总共大约95GB)的数据集转换为另外一个100万条大小为82KB的记录(总共约78GB)的数据集,将在网络上单单为该作业交织至少78GB数据,更不要说redtlee阶段被写到HDFS的输出过程。
请记住,活跃的集群一次运行很多作业,通常必须继续录入新的数据到HDFS。万一不清楚的话,那么会处理大量的数据。
4.6.2 1Gb与10Gb网络
在讨论Hadoop网络时,用户经常会问它们是否应该部署1GB或10GB的网络基础设施。Htadoop并没有要求;然而,它可以受益于10GB连接所带来的额外带宽和更低的延迟。因此,真正的问题变成是否利大于弊。没有具体的场景信息很难真正评估成本。供应商的选择、网络规模、媒体和月亮的圆缺,所有看上去都是定价规则的一部分。你必须考虑不同交换机、主机适配器(主板上的10千兆以太网LAN尚未普遍)、光纤甚至电缆的成本差异来决定10Gb网络是否可行。另一方面,大量的组织已经跳过这一步,并直接宣布所有新的基础设施必须是10GB,这也是可行的。在这本书出版的时候(指英文版——译者注),一个典型的10GB架顶式交换机比对应的1Gb交换机贵大约3倍。
……