hadoop的框架

hadoop总共分两块:1.HDFS 2.Mapreduce
**

HDFS解读

**
HDFS的基本概念:
–块(Block)
–NameNode
–DataNode

HDFS的文件初分成块进行存储
HDFS块的默认大小64MB
块是文件存储处理的逻辑单元,我们对文件进行查找,备份都是按块进行处理的

HDFS中有两类节点:NameNode和DataNode
NameNode:
NameNode是管理节点,存放文件的元数据
1.文件与数据块的映射表
2.数据块与数据节点的映射表
这里写图片描述
客户从NameNode拿取数据,NameNode会返回这些数据所在的数据块,客户拿到后再拼装成他想要的数据

DataNode:
DateNode是HDFS的工作节点,存放数据块,上图中的机架1/2中
每个数据块放3个副本,分布在两个机架内的三个节点上,若一个dataNode块了或者一个机架块了,数据在其它的数据块或者其它机架上还是能找到。它是有这个容错的机制,但这样数据就冗余了。如上图

心跳检测
这里写图片描述
心跳检测:NameNode和DataNode之间有心跳协议的,每隔多少秒DataNode定期向NameNode发送心跳消息,即向NameNode汇报自己的一个状态,是否处于一个active状态,例是否网络有无断开,是否有无关机等。此时NameNode就知道哪些DateNode已经挂了,哪些是好的.

二级NameNode
这里写图片描述
二级NameNode:
(1)若NameNode发生故障,则整个元数据会丢失。
(2)为防止不会丢失,NameNode做了一个备份,即Secondary NameNode.
(3)NamdNode会定期同步到Secondary NameNode.
(4)正常的情况下,NameNode是正常的,Secondary NameNode只是做为一个备份,它不接收请求。
(5)若NameNode故障了,Secondary NameNode会替换掉原有的NameNode,它会变成主的NameNode.

HDFS的特点
(1)数据冗余,支持硬件容错
(2)流式的数据访问,即一次写入多次读取,一旦写入之后是不能被修改的。因为块写好后没法改。若要修改则要把之前的块删除,重新追加新库
(3)存储大文件,如果小文件NameNode压力会非常大,因为它还是要用分那么多块来存储

HDFS适用性和局限性
–适用数据批量读写,吞吐量高
–不适合交互式应用,低延迟很难满足,比如数据库这种不适合
–适合一次写入多次读取,顺序读写
–不支持多用户并发写相同文件

**

Mapreduce 解读

**
Mapreduce: 分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
eg:有1000副牌,少了一张,我们要找出少了什么。
这里写图片描述
注:分5个人来完成任务,即先切分任务。map成5个小任务。例如红星A,每个人统计红星A的map(),然后再做数据交换(所有人将统计的红星A的个数)放到reduce中,然后再次统计reduce 任务,最后输出结果(总共多少个红星A)。数据交换是要规约一定规则的。

Mapreduce的基本概念:
–Job & Task
–jobTracker
–TaskTracker

用图解下面的JobTracker和TaskTracker
Job & Task : job是一个作业,例如:找出访问次数最多的ip.一个job会被拆分成多个task,即任务。一个task又分为MapTask和ReduceTask.
jobTracker:它是一个管理节点,客户端提交Job过来,jobTracker放在后选对列中,在适当的时候调一个job出来,
将这个job分成map作务和Reduce任务,这个map任务又分发给TaskTracker来做,Reduce任务又分发给Reduce TaskTracker来做。

jobTracker的角色
(1)作业调度:作业过来了,按照某种规则来调度。eg:先到先服务
(2)分配任务、监控任务执行进度:taskTracker每隔几秒要给jobTracker一个状态更新,汇报它的状态
(3)监控taskTracker的状态。看taskTracker是否出现故障

TaskTracker角色
(1)执行任务
(2)向JobTracker汇报任务状态

Mapreduce作业执行过程
这里写图片描述
步骤:
(1)输入数据进行分片
(2)按一定的规则分给TaskTracker,分配Map任务
(3)之后产生中间结果,它都是Key-value值。eg:第一个人得到的红星A:30 张
(4)Key-value根据映射规则进行交换,再放到Reduce中,进行reduce任务分配,TraskTracker进行计算
(5)数据结果写回到HDFS中。数据也是从HDFS来的
进行复杂的任务,可以多次的Mapreduce进行多次轮回操作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值