# Cấu hình Hadoop cho lab MapReduce (dựa trên cấu hình chính thức của image apache/hadoop,
# đã điều chỉnh cho bài đếm từ - MMDS 2.2.3 / Hadoop Streaming).
# fs.defaultFS trỏ tới service namenode trong mạng compose.
CORE-SITE.XML_fs.default.name=hdfs://namenode:8020
CORE-SITE.XML_fs.defaultFS=hdfs://namenode:8020

HDFS-SITE.XML_dfs.namenode.rpc-address=namenode:8020
# 2 datanode trong lab, replication=2 để mỗi block có bản sao trên cả 2 DN.
HDFS-SITE.XML_dfs.replication=2
HDFS-SITE.XML_dfs.namenode.name.dir=file:///tmp/lec02/name
HDFS-SITE.XML_dfs.datanode.data.dir=file:///tmp/lec02/data

MAPRED-SITE.XML_mapreduce.framework.name=yarn
# Dùng đường dẫn tuyệt đối (không dùng $HADOOP_HOME) để Compose không interpolate biến.
MAPRED-SITE.XML_yarn.app.mapreduce.am.env=HADOOP_MAPRED_HOME=/opt/hadoop
MAPRED-SITE.XML_mapreduce.map.env=HADOOP_MAPRED_HOME=/opt/hadoop
MAPRED-SITE.XML_mapreduce.reduce.env=HADOOP_MAPRED_HOME=/opt/hadoop
MAPRED-SITE.XML_mapreduce.map.memory.mb=512
MAPRED-SITE.XML_mapreduce.map.java.opts=-Xmx256m
MAPRED-SITE.XML_mapreduce.reduce.memory.mb=512
MAPRED-SITE.XML_mapreduce.reduce.java.opts=-Xmx256m
MAPRED-SITE.XML_yarn.app.mapreduce.am.resource.mb=512
MAPRED-SITE.XML_yarn.app.mapreduce.am.command-opts=-Xmx256m

YARN-SITE.XML_yarn.resourcemanager.hostname=resourcemanager
YARN-SITE.XML_yarn.nodemanager.aux-services=mapreduce_shuffle
YARN-SITE.XML_yarn.nodemanager.resource.memory-mb=2048
YARN-SITE.XML_yarn.nodemanager.resource.cpu-vcores=2
YARN-SITE.XML_yarn.scheduler.minimum-allocation-mb=128
YARN-SITE.XML_yarn.scheduler.maximum-allocation-mb=2048
# Phù hợp mô phỏng trên máy cá nhân: không kiểm tra physical/virtual memory.
YARN-SITE.XML_yarn.nodemanager.pmem-check-enabled=false
YARN-SITE.XML_yarn.nodemanager.vmem-check-enabled=false
# Log aggregation bật mà không có history server vẫn xem được log qua `yarn logs`.
YARN-SITE.XML_yarn.log-aggregation-enable=true
YARN-SITE.XML_yarn.log-aggregation.retain-seconds=-1

# Capacity scheduler: giữ nguyên mặc định của nguồn, chỉ nới maximum-am-resource-percent
# lên 0.5 để lab nhỏ vẫn đủ tài nguyên chạy ApplicationMaster.
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-applications=10000
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-am-resource-percent=0.5
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.queues=default
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.user-limit-factor=1
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.maximum-capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.state=RUNNING
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_submit_applications=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_administer_queue=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.node-locality-delay=40
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings=
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings-override.enable=false

HADOOP_HEAPSIZE_MAX=512
PYTHONIOENCODING=utf-8
