1.分布式的资源调度-yarn(hadoop的一个组件)
资源服务器硬件资源,如:CPU,内存,硬盘,网络等
资源调度:管控服务器硬件资源,提供更好的利用率
分布式资源调度:管控整个分布式服务器集群的全部资源,整合进行统一调度
总结就是使用yarn配合MapReduce,提高集群资源的利用率
2.yarn如何工作:
程序向YARN申请所需资源, YARN为程序分配所需资源供程序使用,明显的担起了资源调度的职责
3.yarn架构:
主从架构:ResourceManager(主)与nodemanager(从)
ResourceManager: 整个集群的资源调度者,负责协调调度各个程序所需的资源。
nodemanager: 单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。
主节点:jps
从节点:jps
4.调度原理:服务器运行程序,运行程序所需的资源预先通知给resourcemanager,由resourcemanager通知给nodemanager进行调度,而nodemanager这边先搭建一个container(容器),把程序所需资源先占用放入container,再供给程序使用.(程序所需的资源不得突破nodemanager所给的container,container有多少程序才能用多少,不能越界)
5.yarn的辅助角色:
WebAppProxyServer(代理服务器):提供安全保障
JobHistoryServer:记录程序历史运行的信息,与收集日志,
6.MapReduce配置:
一./etc/hadoop/mapred-env.sh文件修改:
加入:
export JAVA_HOHE=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO, RFA
二:修改/etc/hadoop/mapred-site.xml
修改:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>MapReduce的运行框架设置为yarn</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>wtk:10020</value>
<description>历史服务器通讯端口为wtk:10020</description>
</property>
<property>
<name>mapreduce. jobhistory.webapp.address</name>
<value>wtk:19888</value>
<description></description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/data/mr-history/tmp</value>
<description></description>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/data/mr-history/done</value>
<description></description>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=SHADOOP_HOME</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>
7.yarn配置文件:
一:/etc/hadoop/yarn-env.sh
添加:
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR-$HADOOP_HOME/etc/hadoop
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
二:/etc/hadoop/yarn-site.xml
修改:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>wtk</value>
<description></description>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/data/nm-log</value>
<description>Comma-separated list of paths on the local filesystem where logs are written.</description>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/nm-local</value>
<description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>Shuffle service that needs to be set for Map Reduce applications.</description>
</property>
8.启动yarn
命令: 启动start-yarn.sh 关闭:stop-yarn.sh
历史服务器启动:mapred --daemon start historyserver
历史服务器关闭:mapred --daemon stop historyserver
主节点:
从节点:
9.监控页面:8088