Hadoop入门之Hadoop的组成

目录

Hadoop1.x和2.x的区别

高内聚 低耦合

Hadoop组成

HDFS

HDFS-负责海量数据的存储:

  • NameNode(nn):管理真实数据的元数据的(hdfs集群中的老大)
  • DataNode(dn):主要负责对真实数据块存储(hdfs集群中的小弟)
  • SecondaryNameNode(2nn):主要为NameNode进行一些数据备份 一般恢复数据的时候才会用到它 它也不能保证完全数据恢复

简单来说 假如需要存储500PB的数据到HDFS上

首先会把各个文件数据切割成数据块 默认是128MB/块

nn就像目录一样 记录了某个文件的信息:切成哪两个数据块;各自存在哪个dn上;对应哪个文件等等的信息

dn就是真实存储数据的地方

2nn是nn的秘书 对nn目录的信息每隔一段时间就会备份一次

YARN

  • YARN主要负责资源调度
  • ResourceManager:统筹管理整个集群的资源 并且负责接收处理客户端作业请求
  • NodeManager:负责单独每一台机器的资源管理 实时保证和大哥RM通信
  • ApplicationMaster:针对每个请求job的抽象封装
  • Container:将来运行在YARN上的每一个任务都会给其分配资源 Container就是当前任务所需资源的抽象封装

没有作业的情况:

包含两种服务 一个RM和多个NM

客户端提交作业的情况:
一个作业会有多个任务 并行运行

数据存的时候是切块

数据算的时候(MR)是切片(逻辑上) 一部分一部分去读取某个数据 每一部分作为一个计算任务

MapReduce

  • MapReduce:主要负责数据的计算分析 Map阶段并行处理输入数据 Reduce阶段对Map结果进行汇总
  • Map阶段:就是把需要计算的数据按照需求分成多个MapTask任务来执行
    Reduce阶段::把Map阶段处理完的结果拷贝过来 根据需求进行汇总计算

Map-分:映射

Reduce-合:规约

而且每台机器计算的时候 是并行计算 互不干扰

为什么说MR适合离线 Spark适合实时

  • MR的两个阶段 会有多次数据的落盘(对磁盘的IO操作很频繁) 所以程序运行的效率较低
  • Spark的计算是基于内存的 计算速度很快
  • 但是Spark本质上也是借助MapReduce的思想来完成计算的
相关推荐
Lx3523 小时前
Hadoop小文件处理难题:合并与优化的最佳实践
大数据·hadoop
最初的↘那颗心18 小时前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
君不见,青丝成雪19 小时前
hadoop技术栈(九)Hbase替代方案
大数据·hadoop·hbase
晴天彩虹雨19 小时前
存算分离与云原生:数据平台的新基石
大数据·hadoop·云原生·spark
最初的↘那颗心1 天前
Flink Stream API - 源码开发需求描述
java·大数据·hadoop·flink·实时计算
Lx3521 天前
MapReduce作业调试技巧:从本地测试到集群运行
大数据·hadoop
BYSJMG1 天前
计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
大数据·hadoop·python·信息可视化·spark·django·课程设计
励志成为糕手1 天前
大数据MapReduce架构:分布式计算的经典范式
大数据·hadoop·mapreduce·分布式计算·批处理
计算机毕设-小月哥1 天前
大数据毕业设计选题推荐:基于Hadoop+Spark的城镇居民食品消费分析系统源码
大数据·hadoop·课程设计
Viking_bird2 天前
centos 7.5 + Hadoop 3.2.4 集群搭建
linux·运维·服务器·hadoop·centos