本周总结(大数据技术)
一:做的事情:自学大数据技术
二:遇到的问题:部分概念不理解
三:下周准备开始自学信息化领域热词分类分析
linux shell脚本:
shell脚本的运行主要分为新建、编辑和执行三个步骤。
1、新建脚本文件
脚本文件新建可以用touch命令,也可以直接用文本编辑器如vi、vim、gedit等新建并编辑,文件名为*.sh
shell脚本文件的名称可以任意,但为了避免被误认为是普通文件,后缀名为.sh代表是一个shell脚本文件(例如后缀名为.py代表是一个python文件)
2、编辑脚本文件
第一行必须为“#!/bin/bash”,脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行该脚本。
第一行以后可以添加注释信息(#)对脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本内容时,可以快速知道该脚本的作用或一些警告信息。
3、执行脚本文件
bash *.py(例如python文件执行为python *.py)
Yarn的重要概念:
Yarn是Hadoop中的四大组件之一。
Hadoop 的四大组件:common、HDFS、MapReduce、YARN
Yarn是在Hadoop2.x新增的组件,只负责资源的调度,MapReduce则负责计算。
Yarn的工作机制:
(1) MR程序提交到客户端所在节点,通过main方法执行了waitForCompletion方法后创建YarnRunner,YarnRunner向RM申请一个application资源
(2) RM返回给application资源的提交路径以及application_id
(3) YarnRunner提交job运行所需资源,包括该job所需切片的信息(job.split)、job在Hadoop集群中的参数配置信息(job.xml)和使用的jar包(wc.jar);这些资源文件需在job.submit()方法提交成功后才会在.staging文件中生成(当然里面还包含crc校验文件的sucess标志文件)
(4) 资源提交完成后YarnRunner向RM申请运行mrAppMaster
(5) RM会在内部将用户的请求初始化一个Task,然后放入的任务队列里面等待执行
(6) 等到NodeManager空闲后领取到Task任务便创建container容器
(7) container容器在里面启动mrAppMaster
(8) container容器读取job资源,获取到了job切片信息,向RM申请MapTask容器用来执行Map任务
(9) 其他空闲NodeManager空闲后领取任务创建对应切片个数的container容器
(10)之后mrAppMaster发送程序脚本启动对应的Map任务,yarnChild即为Map任务进程
(11)当Map任务运行完成落磁盘之后,mrAppMaster会再次向RM申请执行ReduceTask任务的资源
(12)reduce向map获取分区的数据
(13)当reduce任务也运行完成之后,mrAppMaster通知RM并注销自己,同时相关的MapReduce的资源也释放掉