mapreduce与yarn

mapreduce程序应该是在很多机器上并行启动,而且先执行map task,当众多的maptask都处理完自己的数据后,还需要启动众多的reduce task,这个过程如果用用户自己手动调度不太现实,需要一个自动化的调度平台——hadoop中就为运行mapreduce之类的分布式运算程序开发了一个自动化调度平台——YARN

首先,为你的mapreduce程序开发一个提交jobyarn的客户端类(模板代码)

描述你的mapreduce程序运行时所需要的一些信息(比如用哪个mapperreducermapreduce输出的kv类型、jar包所在路径、reduce task的数量、输入输出数据的路径)

将信息和整个工程的jar包一起交给yarn

然后,将整个工程(yarn客户端类+ mapreduce所有jar和自定义类)打成jar

然后,将jar包上传hadoop集群中的任意一台机器上

最后,运行jar包中的(YARN客户端类)

 

[root@hdp-04 ~]# hadoop jar wc.jar cn.edu360.hadoop.mr.wc.JobSubmitter

安装yarn集群

yarn集群中有两个角色:

主节点:Resource Manager  1

从节点:Node Manager   N

Resource Manager一般安装在一台专门的机器上

Node Manager应该与HDFS中的data node重叠在一起

修改配置文件:

yarn-site.xml

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hdp-04</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>2048</value>

</property>

<property>

<name>yarn.nodemanager.resource.cpu-vcores</name>

<value>2</value>

</property>

然后复制到每一台机器上

然后在hdp-04上,修改hadoopslaves文件,列入要启动nodemanager的机器

然后将hdp-04到所有机器的免密登陆配置好

然后,就可以用脚本启动yarn集群:

sbin/start-yarn.sh

停止:

sbin/stop-yarn.sh

启动完成后,可以在windows上用浏览器访问resourcemanagerweb端口:

http://hdp-04:8088

resource mananger是否认出了所有的node manager节点

原文地址:https://www.cnblogs.com/djh222/p/11199204.html