初识Hadoop

本文深入解析大数据技术核心,包括HDFS分布式文件存储、YARN资源管理和MapReduce计算框架。阐述了NameNode、SecondaryNameNode及DataNode在HDFS中的角色,ResourceManager与NodeManager在YARN中的职责,以及MapReduce如何简化大规模数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直都想学习分布式和大数据,但是之前被搭建环境给劝退了。

如今在公司不用自己搭建环境,了一些概念和操作后就可以动手测试,美滋滋。


架构:

  • HDFS: 分布式文件存储
  • YARN: 分布式资源管理
  • MapReduce: 分布式计算

HDFS和YARN逻辑上独立,但是物理上是存在关联的,前者是对磁盘和存储的管理操作,后者是对CPU内存的管理操作

这三个组件内部基本都是采用的Master/Slave架构


HDFS:

架构

  • NameNode                              管理文件名和数据库的映射,数据块和datanode的映射(奴隶主---唯一
  • SecondaryNameNode           定期合并一些数据,然后与NameNode进行同步,在NameNode挂掉时可以顶替它(奴隶主的帮手---唯一
  • DataNode                               保存具体的block数据(奴隶---很多个

流程

                                                                        存储数据

存储数据

 

 

                                                                     读取数据

默认情况下会为每个文件块额外的生成2个备份,看得出来NameNode发挥着调度指挥的作用,有了它才能知道对文件进行Map操作后分散存放在哪儿

 


 

Yarn:

架构

  • ResourceManager               负责全局的资源调度(集群老大,唯一的)
  • NodeManager                       每个节点上的资源和任务管理器(一台机器上的老大)
  • ApplicationMaster                跟踪处理一个任务,让多个NM配合其工作
  • Container                              资源的基本单位,任务的容器

流程

AM被启动后,会去申请资源然后要求多个NM启动MR(MapReduce任务),在所有的MR完成后AM则向RM汇报结果并且注销自己


 

MapReduce:

如果想统计下过去10年计算机论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?

  1. 我可以写一个小程序,把所有论文按顺序遍历一遍,统计每一个遇到的单词的出现次数,最后就可以知道哪几个单词最热门了。
  2. 写一个多线程程序,并发遍历论文。如果是多核的处理器该方法肯定比方法1好,但是需要考虑同步共享数据的问题,防止重复统计。
  3. 把作业交给多个计算机去完成。人为的按照某些规则分割任务集(比如机器A统计2010年之前的论文,机器B统计2010年之后的)。这个方法比方法2快得多,但是部署起来很麻烦,我们要人工把程序copy到别的机器,要人工把论文集分开,把N个运行结果进行整合。
  4. 让MapReduce来帮帮我们吧!MapReduce本质上就是方法三,但是如何拆分文件集,如何copy程序,如何整合结果这些都是框架定义好的。我们只要定义好这个任务(用户程序),其它都交给MapReduce。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值