YARN架构:
1个RM(ResourceMnager)主节点+N个NM(NodeManager)从节点
ResourceMnager职责:一个集群active状态的RM只有一个,负责整个集群额资源管理和调度
1.处理客户端的请求(启动或杀死一个作业)
2.启动/监控ApplicationMaster(一个作业对应一个AM)
3.通过心跳监控NM
4.系统的资源分配和调度
NodeManager职责:整个集群中有N个节点,负责单个节点的资源管理和使用以及task的运行
1.定期向RM汇报本节点资源使用情况和各个Container的运行状态
2.接收并处理RM的Container启停的各种命令
3.单个节点的资源管理和任务管理
ApplicationMaster职责:每个作业/应用对应一个,负责 应用程序的管理
1.数据切分
2.为应用程序向RM申请资源(container),并分配给内部任务
3.与NM通信以启停task,task是运行在container中的
4.task的监控和容错
container职责:对任务运行情况的描述包括(cpu,memory,环境变量)
YARN执行流程:
1.用户向YARN提交作业
2.RM为该作业分配的第一个Container(启动AM)
3.RM会与对应的NM通信,要求NM在这个Container上启动应用程序的AM
4.AM首先向RM注册,然后AM将为各个任务申请资源,并监控运行情况
5.AM采用轮训的方式通过RPC协议向RM申请和领取资源
6.AM申请到资源后,便和相应的NM通信,要求NM启动任务
7.NM启动我们作业对应的task
YARN环境搭建:
mapred-site.xml配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml配置
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
启动yarn:sbin/start-yarn.sh
验证是否启动成功:jps
有如下进程:ResourceManager,NodeManager,Web访问:http://主机名:8088
停止yarn:sbin/stop-yarn.sh
提交MapReduce作业到yarn上运行:
jar包位置hadoop-2.x-cdh5.x/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.x-cdh5.7.jar
hadoop jar位置 wordcount /input/文件位置/文件名 /output/文件夹目录
Hive构建在Hadoop上的数据仓库,定义一种类SQL的HQL语言,通常用于离线数据处理
Hive底层的执行引擎有:MapReduce,Spark,Tez
压缩有Gzip,Lzo,SNappy,Bzip2
存储有:TextFile,SequenceFile,RCfile,ORCfILE,
UDF:自定义函数,自己发开