mapreduce运行在yarn中,部署yarn之前,先配置mapreduce的mapred-env.sh和mapred-site.xml文件。
mapred-env.sh文件,添加如下变量
export JAVA_HOME=/ex/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
mapred-site.xml文件,添加如下配置
MAPRED-SITE.XML是Hadoop MapReduce框架中的一个配置文件,用于配置MapReduce作业的运行参数和环境设置。以下是MAPRED-SITE.XML的一些常见配置项:
1. mapreduce.framework.name:指定MapReduce框架的实现,可以是"yarn"(默认)或"classic"。如果使用YARN作为集群管理器,则设置为"yarn"。
2. mapreduce.jobtracker.address:指定JobTracker的主机名和端口号。在YARN模式下无效。
3. mapreduce.jobtracker.http.address:指定JobTracker的HTTP访问地址。
4. mapreduce.jobhistory.address:指定JobHistoryServer的主机名和端口号。
5. mapreduce.jobhistory.webapp.address:指定JobHistoryServer的Web访问地址。
6. mapreduce.map.memory.mb:指定每个Map任务使用的内存量(以MB为单位)。
7. mapreduce.reduce.memory.mb:指定每个Reduce任务使用的内存量(以MB为单位)。
8. mapreduce.map.java.opts:指定每个Map任务的Java虚拟机参数。
9. mapreduce.reduce.java.opts:指定每个Reduce任务的Java虚拟机参数。
10. mapreduce.task.io.sort.mb:指定Map任务进行排序操作时使用的内存量(以MB为单位)。
11. mapreduce.task.timeout:指定任务超时时间(以毫秒为单位)。
12. mapreduce.job.max.split.locations:指定一个文件可以被切分成多少个部分。
以上只是MAPRED-SITE.XML中的一部分配置项,还有其他更多的配置项可以根据需要进行设置。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/data/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/data/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
配置yarn文件
yarn-env.sh文件,添加如下四行环境变量
export JAVA_HOME=/ex/server/jdk
export HADOOP_HOME=/ex/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
yarn-site.xml文件,配置如图
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
<description>历史服务器路径</description>
</property>
<property>
<name>yarn.web-proxy.address</name>
<value>node1:8089</value>
<description>代理服务器主机和端口</description>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>开始日志聚合</description>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
<description>程序日志HDFS的存储路径</description>
</property>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
<description>ResoucesManager的所在节点</description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
<description>选择公平调度器</description>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/nm-local</value>
<description>NodeManager中间数据本地存储路径</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/data/nm-log</value>
<description>NodeManager数据日志本地存储路径</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>为Mapreduce程序开启Shuffle服务</description>
</property>
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>10800</value>
<description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>
</property>
</configuration>
配置好后,传给其他服务器节点scp
jps后如果没有resourManager和nodemanager,就是Java版本不对,需要java1.8