千家信息网

Hadoop相关概念

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,Hadoop是什么Hadoop是一个开源的大数据框架Hadoop是一个分布式计算的解决方案Hadoop = HDFS(分布式文件系统)+ MapReduce(分布式计算)Hadoop核心HDFS分布式
千家信息网最后更新 2025年02月02日Hadoop相关概念
Hadoop是什么
  • Hadoop是一个开源的大数据框架
  • Hadoop是一个分布式计算的解决方案
  • Hadoop = HDFS(分布式文件系统)+ MapReduce(分布式计算)
Hadoop核心
  • HDFS分布式文件系统:存储是大数据技术的基础
  • MapReduce编程模型:分布式计算是大数据应用的解决方案
Hadoop基础架构

 HDFS概念
  数据块
  NameNode
  DataNode

数据块:抽象块而非整个文件作为存储单;默认大小64MB一般设置为128M,备份X3。
NameNode:管理文件系统的命名空间,存放文件元数据;维护着文件系统的所有文件和目录,文件与数据块的映射;记录每个文件中各个块所在数据节点的信息。
DataNode:存储并检索数据块;向NameNode更新所存储块的列表。

HDFS优点
  • 适合大文件存储,支持TB、PB级的数据存储,并有副本策略。
  • 可以构建在廉价的机器上,并有一定的容错和恢复机制。
  • 支持流式数据访问,一次写入多次读取最高效。
HDFS缺点
  • 不适合大量小文件存储
  • 不适合并发写入,不支持文件随机修改。
  • 不支持随机读取等低延时的访问方式。
Hadoop各个功能模块的理解

1、HDFS模块

HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。

2、YARN模块

YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题而创建的一个框架。
YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。

3、MapReduce模块

MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。

延伸思考
  • 如何通过Hadoop存储小文件?
    a、在客户端将小文件合并为大文件。
    Hadoop会把每一个小文件传递给map()函数,而Hadoop在调用map()函数时会创建一个映射器,这样就会创建了大量的映射器,应用的运行效率并不高。如果使用和存储小文件,通常就会创很多的映射器。解决小文件问题的主要目的就是通过合并小文件为更大的文件来加快Hadoop的程序的执行,解决小文件问题可以减少map()函数的执行次数,相应地提高hadoop作业的整体性能。
    b、使用Hadoop的CombineFileInputFormat实现小文件的合并。
    使用Hadoop API(抽象类CombineFileInputFormat)来解决小文件的问题。抽象类CombineFileInputFormat的基本思想是通过使用一个定制的InputFormat允许将小文件合并到Hadoop的分片(split)或块(chunk)中。
  • 当有节点故障的时候,集群是如何继续提供服务的,如何读、写?
  • 哪些是影响MapReduce性能的因素?
    a、硬件(或者资源)因素,如CPU、磁盘I/O、网络带宽和内存大小。
    b、底层存储系统。
    c、输入数据、分拣(shuffle)数据以及输出数据的大小,这与作业的运行时间紧密相关。
    d、作业算法(或者程序),如map、reduce、partition、combine和compress。有些算法很难在MapReduce中概念化,或者在MapReduce中效率可能会降低。

HDFS写流程


1、客户端想NameNode发起写数据请求
2、分块写入DataNode节点,DataNode自动完成副本备份
3、DataNode向NameNode汇报存储完成,NameNode通知客户端

HDFS读流程


1、客户端向NameNode发起读数据请求
2、NameNode找出距离最近的DataNode节点信息
3、客户端从DataNode分块下载文件

MapReduce

MapReduce是一种编程模型,是一种编程方法,是抽象的理论。

  • YARN概念(通用的资源协同和任务调度框架)
    • ResourceManager
      分配和调度资源、启动并监控ApplicationMaster、监控NodeManager
    • ApplicationMaster
      为MR类型的程序申请资源,并分配给内部任务、负责数据的切分、监控任务的执行及容错
    • NodeManager
      管理单个节点的资源、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令

MapReduce四个阶段

  • Split阶段
  • Map阶段(需要编码)
  • Shuffle阶段
  • Reduce阶段(需要编码)
MapReduce编程模型
- 输入一个大文件,通过split之后将其分为多个分片    - 每个文件分片由单独的机器去处理,这就是Map方法    - 将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法。    
文件 数据 存储 分布式 框架 阶段 模块 资源 处理 客户 客户端 系统 问题 任务 大小 机器 节点 支持 服务 编程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库分离怎么还原 网络安全产品市场招聘 医疗机构医保网络安全管理制度 网络安全的基本污点档案 2019网络安全试题 虹口区信息软件开发信息中心 数据库表里字段的值相加 景点网络安全事件应急预案 linux服务器查内存命令 嘉兴电脑软件开发总结 服务器1.17优化1.16存档 国家认可网络安全产业园 计算机应用与网络技术 网络安全宣传周河东 互联网科技背景素材 基础设施与网络安全招聘 知网和维普数据库的区别 上海航空工业集团软件开发 微软数据库实例名怎么查 路由dns服务器可能不可用 数据库恢复SQL1005N 警翼执法仪服务器的配置 计算机网络技术插本专业课是什么 数据库系统采用的安全措施 linux服务器查内存命令 鹰眼神探护卫网络安全 管理 流媒体服务器 如何启用对服务器的远程访问 加拿大网络安全工程师收入 9月16日网络安全宣传活动
0