深入理解Hadoop 笔记一

第一章Hadoop中的概念

1、MapReduce 编程模型简介
特点:扩展性 容错性 并行离线计算
Split是Mapreduce中最小计算单元。每个Split对应一个MapTask,默认是一个Block对应一个Split,但是它们的对应可以由用户指定。
Map:数据初始读取和转换步骤,在这个步骤中,每个独立的输入记录都进行并行处理。
Reduce:数据整合的步骤。相关联的记录都要放到一台计算节点上来运行。

Map任务的主要作用就是将数据记录转换成键值对。然后所有map任务的输出数据都会进行分区,并且将数据进行排序。而每个分区对应一个Reduce任务。

关注四个类:读取输入的类,Mapper类,Reducer类,输出类。
Map阶段之后还有一个sort/shuffle阶段。这个阶段对键值对进行了排序。这样可以确保相同键值的数据可以被同一个Reducer来处理。注意,Map阶段生成的键值对不会生成列表,而是会存入本地文件系统中,Reducer阶段再通过java迭代接口流式读入。

2、Hadoop的系统组成
NameNode:维护Hdfs上所有文件的元数据。
Secondary NameNode:不是名称节点的热备份。
DataNode:真正数据块存储的地方。
Jobtracker:调度各个任务。
TaskTracker:启动和管理各个Map/Reducer任务。

3、Hdfs:分布式文件系统
优点:
处理超大文件
流式访问数据
运行于廉价机器上
缺点:
不适合储存大量小文件
不适合低延迟数据访问
不支持多用户写入以及任意修改文件

Hdfs建立的思想是:一次写入,多次读取。不支持随时修改文件。
hadoop 文件的本质是块存储。块的大小一般为128Mb。HDFS 中文件块是有备份的。一般备份数为3。
Hadoop 通过配置一个网络拓扑文件实现机架感知功能。备份不会放置到同一个机架中。一般是两个机架,分别存放1、2个备份。

读取文件:
访问NameNode 节点。获得组成文件的数据块列表以及数据块的位置。
访问DataNode 节点获取数据,若是故障,读取备份。
校验,若失败,则换备份节点。
注意:NameNode节点中并不保存数据块的位置信息。这些信息储存在DataNode 中,集群启动的时候会读入。

写入文件:
流式读入本地客户端临时文件。
若是大小大于一个块的大小,那么联系NameNode。
创建元数据。
写入DataNode。
NameNode 提交,使其可见。

删除文件:
NameNode删除元数据。
时间超过后,命名空间中删除此文件。
释放块,更新空块信息。

4、Secondary 节点详解
Hadoop重启时,edits文件会和fsimage文件合并拖慢时间,而Secondary节点会定期将两个文件合并并发送至NameNode替换旧版。于是缩短了开启时间。
fsimage文件:原来保存元数据的文件。
edits文件:集群运行过程和不断更新产生的新文件。
所以两个文件在每次集群重启的时候才需要合并。

5、任务执行过程
JobTracker 接受一个作业。
JobTracker 联系NameNode
调度TaskTracker来执行任务,TaskTracker 会定期给JobTracker发送心跳信息。若是一定时间间隔内没有收到心跳信息。则认为TaskTracker挂掉了。重新分配一个TaskTracker。
执行完毕。

6、YARN 资源管理器
—–用于资源管理和应用调度。
—–架构:
资源管理器(Resource Manager,RM)负责集群中可用资源的分配和管理。
节点管理器(Node Manager,NM)每个节点都有,负责本地资源管理
Application (AM)封装了应用程序所有逻辑结构和依赖库信息。
**容器(**Container)资源的抽象形式。
客户端(Client)提交的实例。

—–调度方式
FIFO Scheduler 先入先出调度
Capacity Scheduler 容量调度
Fair Scheduler 公平调度

—–shell命令
yarn application -list 列出Application
yarn application -kill appid 杀死Application
yarn application -status appid 显示Application状态
yarn jar [jar file path] [main class] [arguments] 运行jar包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值