微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hadoop yarn

1 YARN产生背景

MapReduce1.x ==> MapReduce2.x
    master/slave : JobTracker/TaskTracker
    JobTracker:单点、压力大
    仅仅只能够支持mapreduce作业

资源利用率
    所有的计算框架运行在一个集群中,共享一个集群的资源,按需分配!

2 YARN关键字解释

ResourceManager-->RM:资源管理
ApplicationMaster-->NM:节点管理
NodeManager-->AM:应用管理

3 YARN架构

Client、ResourceManager、NodeManager、ApplicationMaster
master/slave: RM/NM
Client: 向RM提交任务、杀死任务等 ApplicationMaster: 每个应用程序对应一个AM AM向RM申请资源用于在NM上启动对应的Task 数据切分 为每个task向RM申请资源(container) NodeManager通信 任务的监控 NodeManager: 多个 干活 向RM发送心跳信息、任务的执行情况 接收来自RM的请求来启动任务 处理来自AM的命令 ResourceManager:集群中同一时刻对外提供服务的只有1个,负责资源相关 处理来自客户端的请求:提交、杀死 启动/监控AM 监控NM 资源相关 container:任务的运行抽象 memory、cpu.... task是运行在container里面的 可以运行am、也可以运行map/reduce task

4 配置YARN

cd /usr/local/hadoop2.6/hadoop-2.6.0-cdh5.9.0/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml  # 编辑

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

vim yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

5 启动YARN

cd /usr/local/hadoop2.6/hadoop-2.6.0-cdh5.9.0/sbin
bash start-yarn.sh  # 确定yarn

jps  # 查看hadoop进程  出现这两个表示成功  /usr/local/hadoop2.6/hadoop-2.6.0-cdh5.9.0/logs 日志文件路径
ResourceManager
NodeManager

http://192.168.107.216:8088/   # 直接访问  能访问证明启动成功  YARN页面

6 提交自己开发的MR作业到YARN上运行的步骤

1)mvn clean package -DskipTests  # 项目打包成jar包
    windows/Mac/Linux ==> Maven
2)把编译出来的jar包(项目根目录/target/...jar)以及测试数据上传到服务器
    scp xxxx root@ip:目录   # 复制到hadoop服务器上
3) 把数据上传到HDFS
    hadoop fs -put xxx hdfspath
4) 执行作业
    hadoop jar xxx.jar 完整的类名(包名+类名) args.....
5) 到YARN UI(ip:8088) 上去观察作业的运行情况
6)到输出目录去查看对应的输出结果

  

  

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐