HDFS和MapRuduce

HDFS和MapRuduce

Hadoop核心项目

HDFS:Hadoop Distributed File System分布式文件系统,用来管理文件的。在HDFS上存储的数据是分散很多服务器之上的,但是用户感觉不到文件真的分布在很多台机器上,就像一台机器上似的。
MapRuduce:分布式并行计算框架,实现的是分布式计算,大数据分布在很多台服务器上,需要它去并行地执行
Map:在每个分散的机器上进行计算的那部分;Ruduce:主要做最后的一个汇总

HDFS架构:

HDFS和MapRuduce都是主从结构。管理与被管理这种关系,分为管理者和被管理者。被管理者通常做具体的事物,管理者通常是组织,协调,管理工作的。

  1. 节点:网络环境中的每一台服务器
  2. 主节点:只有NameNode,负责各个节点数据的组织管理,
  3. 从节点:有很多个DataNode,负责存储数据,数据节点

NameNode对外,DataNode对内;NameNode接收用户的操作请求,NameNode负责协调管理,不是真正的存放数据,会把数据分散到各个节点上去存储;
海量数据是单节点处理不了的,所以我们的数据需要存放在多台服务器上,作为管理的NameNode知道数据具体存放在DataNode的哪些节点上

NameNode对外暴露的就是目录的文件系统
用户要进行HDFS操作的时候,首先和NameNode打交道,NameNode上边有一个文件系统的目录结构,用户通过看文件系统的目录结构,就知道我们的数据存放在哪个路径下面,文件叫什么名字,文件的路径,文件有多大,我们的数据具体存放在哪些节点上。而关于这些信息,用户是不需要关心的,用户只需要知道我需要去哪里拿才能拿到这些数据。
NameNode负责:接收用户操作请求,是用户操作的入口。维护文件系统的目录结构,称作命名空间;
DataNode负责:存储文件数据,并告知NameNode数据的存放位置

MapRudece架构

主节点执行一个管理者的角色,从节点执行一个被管理者的角色。管理和被管理完成数据的一个计算(任何对数据的处理都称之为计算,查询,过滤,数据的检索…利用cpu和内存进行数据处理)。
主节点只有一个:JobTracker
把我们用户的操作请求,拿过来,分发给TaskTracker,接收用户提交的计算任务,把计算任务分配到TaskTracker去执行,监控TaskTracker的执行情况。
从节点有很多个:TaskTracker
是我们自己安装部署的,通常和DataNode再一起,执行用户的操作,运行时根据TaskTracker上DataNode的数据只执行一部分,执行程序时,去找DataNode本地的数据,然后加载DataNode上边的数据并执行。

  • MapReduce进行计算时,处理的数据就是用户提交的这些数据;
  • TaskTracker通过反射将我们的程序读进内存中,然后在jvm中运行,程序在含有数据的DataNode的节点上运行;
  • TaskTracker负责用户提交的计算任务;
  • 节点的数量越多,整体的计算时间越短,JobTracker管理执行任务的TaskTracker;
  • NameNode和DataNode负责完成数据存储;
  • JobTracker和TaskTracker完成数据的计算;
  • NameNode和JobTracker不一定非要在同一台机器上,在生产中,通常是分开的,因为用户的请求,NameNode也接收,JobTracker也接收,为了防止NameNode操作慢,所以NameNode  最好是一台机器,充分利用cpu和内存,JobTracker也是一台机器,都是独立的
  • DataNode和TaskTracker通常是同一台机器,是因为TaskTracker在运行的时候,可以执行本地的数据,如果不在一起,就要经过网络传播(网络一不稳定,二耗时) DataNode只管理本地,不管理远程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值