Hadoop的介绍以及大数据的理解

什么是Hadoop

Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。

在这更要说明一下hadoop更是一个生态圈和spark一样;

Hadooop生态圈下的模块

  • Hadopp Common:       支持其他Hadoop模块常用的实用程序
  • HDFS:                           一种分布式文件系统,可提供对应用程序数据的高吞吐量访问
  • Hadoop YARN:             作业调度和集群资源管理的框架
  • Hadoop mapReduce:   基于YARN的系统,用于并处理大型数据集

大数据

大数据最简单的话就是短时间快速产生大量多种多样的有价值的信息

大数据的五大性
Hadoop的介绍以及大数据的理解

大数据的架构

主从架构
    主节点(Namenode)
    从节点(Datanode)
    中间操作者----client

block块的介绍
Hadoop的介绍以及大数据的理解

大家可以看到这个图
以block块的形式将大文件进行相应的存储
     1.X 64兆
     2.X 128兆

文件线性切割成块(Block):偏移量offset(byte)
Block分散存储在集群节点中
单个文件Block大小一致,文件与文件可以不一致
Block可以设置副本数,副本分散在不同节点中
副本数不要超过节点数量,
文件上传可以设置Block大小和副本数
已上传的文件Block副本数可以调整,大小不变
只支持一次写入多次读取,同一时刻只有一个写入者

每个节点的流程
主节点

  1. 掌控全局 掌握Datanode的信息 管理元数据
  2. 接受中间操作者的请求 读写
  3. 与Datanode之间进行相应的通信

从节点

  1. 干活 -------存储数据
  2. 给主节点汇报自己的情况
  3. 接受中间操作者的安排

具体流程
Hadoop的介绍以及大数据的理解

写操作

  1. 有一个大文件
  2. 中间操作者会将文件进行切块 大文件的大小/128兆=block块数
  3. 向主节点汇报
         1.块数
         2.文件的大小
         3.文件的权限
         4.文件的属主
         5.文件的上传时间
  4. 中间操作者切下一块 128兆
  5. 中间操作者向主节点去申请资源------从节点的信息
  6. 主节点(Namenode)会返回一批负载不高的从节点(Datanode)给中间操作者
  7. 中间操作者会向从节点(Datanode)里面发送block并且最好备份
  8. 从节点(Datanode)存放block块之后想主节点(Namenode)汇报情况

读操作

  1. 主节点(Namenode)向中间操作者发送一个请求,中间操作者接受请求之后,会向主节点(Namenode)去申请从节点信息(blockid)
  2. 主节点(Namenode)向中间操作者发送一些节点信息
  3. 中间操作者获取到节点信息之后去从节点(Datanode)拿取数据(就近原则)

备份机制

Hadoop的介绍以及大数据的理解五角星是哪个节点的备份

  1. 集群内提交 在提交的节点上放置block
  2. 集群外提交 选择一个负载不高的节点进行存放

pipeline管道

  1. 主节点在返回给中间操作者一些从节点的信息之后
  2. 中间操作者会和这些从节点形成一个管道
    并且将block切割成一个个ackPackage(64k)
  3. 从节点会从管道中拿去相应的数据进行存储
  4. 当存储完成之后,从节点会向主节点进行汇报