OOM
从进程入手:
HADOOP 5个守护进程,HADOOP_HAPSIZE 参数设置每个守护进程的内存大小,hadoop_namemode_opt 存储每个块的索引信息,既然是name的还有个secondarynode_opt。
再说说MAP和reduce
1个tasktracker 能运行多少个map
MR任务分配是根据Containers分配,数量由CPU core+内存来确定,mapred.taskacker.map.tasks.maximum和reduce.tasks.maximum,1个core可以分配2个map Containers和1个reduce Containers,内存默认情况下mapred.child.java.opts=-Xmx200m。如果服务器为8core
最大运行的map数据是14个和14个reduce任务,mapreduce预留1个core给守护进程。
决定由任务跟踪器同时运行的 map/reduce 任务的最大数量。这两个参数与 CPU 利用率最相关。这两个参数的默认值都是 2。根据集群的具体情况适当地增加它们的值,这会提高 CPU 利用率,由此提高性能。例如,假设集群中的每个节点有 4 个 CPU,支持并发多线程,每个 CPU 有两个核;那么守护进程的总数不应该超过 4x2x2=16 个。考虑到 DN 和 TT 要占用两个,map/reduce 任务最多可以占用 14 个,所以这两个参数最合适的值是 7。
所以能看到hadoop mapreduce任务执行的进程就这几种,map和reduce job进程。