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.16.2/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.16.2/sbin
bash start-yarn.sh  # 确定yarn

jps  # 查看hadoop进程  出现这两个表示成功  /usr/local/hadoop2.6/hadoop-2.6.0-cdh5.16.2/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)到输出目录去查看对应的输出结果


cd E:6-work3-javaHadoopCodehadoop01   # 进入项目所在的目录
mvn clean package -DskipTests  # 项目打包成jar包
cd E:6-work3-javaHadoopCodehadoop01	arget   # 这个目录下面有完成打包的  jar包
scp hadoop01-1.0.jar root@192.168.107.216:/home/hadoop/lib   # jar包 上传到服务器中
scp qqwry.dat root@192.168.107.216:/home/hadoop/lib   # qqwry.dat ip数据上传到服务器中
scp trackinfo_20130721.data root@192.168.107.216:/home/hadoop/lib   # 日志数据上传到服务器中
hadoop fs -mkdir -p /project/input/raw   # 创建hadoop目录
hadoop fs -lsr /   # 查看目录是否创建成功
hadoop fs -put trackinfo_20130721.data /project/input/raw   # 上传数据到目录中
hadoop fs -lsr /   # 查看目录是否创建成功

vim pv.sh
hadoop jar /home/hadoop/lib/hadoop01-1.0.jar com.project.mr.PVStatApp hdfs://192.168.107.216:8020/project/input/raw hdfs://192.168.107.216:8020/project/output/v1/pvsata

chmod 777 pv.sh

bash pv.sh

  

  

  

  

原文地址:https://www.cnblogs.com/yoyo1216/p/12836851.html