MR的相关配置

mapred-site.xml

set mapreduce.jobhistory.done-dir=存放已经运行完的作业目录
set mapreduce.jobhistory.intermediate-done-dir=存放正在运行的作业目录
set mapreduce.jobhistory.joblist.cache.size=200 # web ui上显示的作业个数
set yarn.app.mapreduce.am.staging-dir=缓存目录

mr的 container 配置. 参考

# mapred-site.xml
set mapreduce.map.java.opts=-Xmx1024m -Xms512M # container 执行map任务 上的java进程的内存大小 mx 最大 ,ms 最小
set mapreduce.reduce.java.opts=-Xmx1024m -Xms512M # 同上 reduce 任务
set mapreduce.map.memory.mb=1024 # container 总分配给map 程序的内存
set mapreduce.reduce.memory.mb=1024  # container 总分配给 reduce 的内存
# yarn-site.xml
set yarn.scheduler.maximum-allocation-mb=2048 # 分配给 container 的最大内存
set yarn.scheduler.minimum-allocation-mb=1024 # 分配给 container 的最小内存
set yarn.nodemanager.vmem-pmem-ratio=5 # 虚拟内存比率
set yarn.nodemanager.vmem-check-enabled=true # 是否检查虚拟内存

使用python 执行 MR

Python版本需要通过hadoop stearm 的支持,通过标准输入输出流来执行

执行

hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-*.jar <-D key=value> -input /input/ncdc/1901 -output output -mapper "max_temperature_map.py" -reducer "max_temperature_reduce.py" -file /Users/alen/WorkSpace/hadoop-project/python/ncdc/*

参数解释: