分布式的大杀器 Hadoop,搭建集群和搞清楚网络架构是关键。

HDFSMapReduce 这两兄弟是核心,一个管存储,一个负责计算。你在部署的时候,像 NameNodeDataNodeJobTrackerTaskTracker 这些角色分清楚,后面排错和调优省事不少。

主节点就像大脑,调度任务、管理元数据;从节点才是真正干活的,存数据、跑计算。你平时接触最多的,其实是 Client,提交作业、看状态、拿结果,都靠它。

网络架构也是大头,别小看。1Gb/s 跑着跑着就吃紧了,现在不少集群都用 10Gb/s 甚至更高,尤其你要搞实时或者并发高的任务。交换机、机架拓扑这些配置好了,数据走得快,效率才能上去。

Hadoop 流程也不复杂:先把文件切块丢进 HDFS,任务丢给 JobTracker,再分派到各个 TaskTracker,跑完以后,结果还原回 HDFS,你从那儿拿结果。简单粗暴,但有效。

优化方面,建议你多盯着 数据局部性。Hadoop 比较聪明,会尽量让计算跑在数据本地节点上,减少传输。但你如果集群设计得不合理,这一招就废了。

如果你准备自己搭建或者想搞懂 Hadoop 怎么高效跑起来,强烈建议你看看这几篇:

如果你是第一次玩集群,建议先从两节点起步,熟悉流程后再扩容。别一上来就搞十几台,容易踩坑。