mapreduce核心思想:让我们的运算程序并行在多台机器上执行!
mapreduce运行平台YARN
mapreduce程序应该是在很多机器上并行启动,而且先执行map task,当众多的maptask都处理完自己的数据后,还需要启动众多的reduce task,这个过程如果用用户自己手动调度不太现实,需要一个自动化的调度平台——hadoop中就为运行mapreduce之类的分布式运算程序开发了一个自动化调度平台——YARN
yarn快速理解
yarn的基本概念
yarn是一个分布式程序的运行调度平台
yarn中有两大核心角色:
Resource Manager
接受用户提交的分布式计算程序,并为其划分资源
管理、监控各个Node Manager上的资源情况,以便于均衡负载
Node Manager
管理它所在机器的运算资源(cpu + 内存)
负责接受Resource Manager分配的任务,创建容器、回收资源
YARN的安装
node manager在物理上应该跟data node部署在一起
resource manager在物理上应该独立部署在一台专门的机器上
修改配置文件:
vi yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hdp20-01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--内存大小(单位:mb)--> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <!--内核数量--> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>2</value> </property>
- scp这个yarn-site.xml到其他节点
- 启动yarn集群:start-yarn.sh (注:该命令应该在resourcemanager所在的机器上执行)
- 用jps检查yarn的进程
- 用web浏览器查看yarn的web控制台,http://hdp20-01:8088