Hadoop 의 분산 처리 모델이다. 입력을 조각내 여러 노드에서 map 함수를 돌리고, 키별로 모아(shuffle) reduce 함수로 합친다. Hadoop 2 부터는 MapReduce 가 자원 관리를 직접 하지 않고 YARN 위의 애플리케이션으로 돈다. 잡 이력은 별도 데몬인 JobHistory Server 가 보관한다.
현행 Hadoop 은 3.4.3(안정 계열) · 3.5.0[1] 이다. Hive 는 MapReduce 대신 Tez 를, 새 파이프라인은 Spark 를 쓰는 것이 보통이라 MapReduce 를 직접 작성하는 일은 드물지만, Sqoop · DistCp · 일부 Oozie 액션은 여전히 MapReduce 로 돈다.
$HADOOP_HOME/etc/hadoop/mapred-site.xml. 최소한 mapreduce.framework.name=yarn 과 mapreduce.application.classpath 가 있어야 YARN 위에서 돈다[2].
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value>/home/hdfs/mapred</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
<!-- map 작업 컨테이너 메모리 -->
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
<!-- map 작업 child JVM 힙. memory.mb 의 80% 안팎 -->
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
<!-- reduce 작업 컨테이너 메모리 -->
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
<!-- reduce 작업 child JVM 힙 -->
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hdfs02.encore.rnd:10020</value>
<!-- Job history server 주소 (기본 포트는 10020) -->
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hdfs02.encore.rnd:19888</value>
<!-- Job history server Web UI주소 (기본 포트는 19888) -->
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/tmp</value>
<!-- HDFS 경로. 실행 중인 잡의 이력 -->
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/mr-history/done</value>
<!-- HDFS 경로. 끝난 잡의 이력 -->
</property>
</configuration>
mapred.map.memory.mb · mapred.reduce.memory.mb · mapred.map.child.java.opts · mapred.local.dir 같은 mapred.* 이름은 Hadoop 2 부터 deprecated 이고 위의 mapreduce.* 이름이 정식이다[3]. 옛 이름도 아직 읽히지만 로그에 경고가 찍힌다. mapreduce.jobhistory.*-dir 은 HDFS 경로라 $HADOOP_HOME 같은 로컬 변수를 넣지 않는다.
YARN 을 올린 뒤 이력 서버를 따로 띄운다[2:1].
$HADOOP_HOME/sbin/start-yarn.sh
mapred --daemon start historyserver
웹 UI 는 http://<jobhistory-host>:19888/ 이다.
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 2 10
mapred job -list all
최신 버전 3.5.0 (2026-04-02) · 안정 계열 3.4.3 (2026-02-24) — 2026-09-20 확인. https://hadoop.apache.org/releases.html ↩︎
Hadoop 3.4.3 — Setting up a Single Node Cluster (YARN on a Single Node) — 2026-09-20 확인. https://hadoop.apache.org/docs/r3.4.3/hadoop-project-dist/hadoop-common/SingleCluster.html ↩︎ ↩︎
Deprecated Properties — 2026-09-20 확인. https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/DeprecatedProperties.html ↩︎