大数据开发之路—3

大数据开发之路—3

之前记录了大数据开发环境的部署过程,下面就可以介绍大数据开发工具的一些工作机制和工作原理。今天首先介绍大数据开发中大家耳熟能详的工具——Hadoop。Hadoop作为一个最早开始流行的大数据开发工具,它能够做些什么呢?当然要看大数据开发需要干什么,简单来讲大数据主要做两件事情,一是海量数据的存储,二是海量数据的运算。那么Hadoop恰好就能够做这两件事情。为了能够满足以上两种需求,Hadoop的开发者设计以下几个核心的组件:
HDFS:分布式文件系统,实现将文件分布式地存储在多台物理分散的服务器上;
MapReduce:分布式运算编程框架,实现多态机器上分布式并行计算;
YARN:分布式资源调度平台,帮助用户调度大量的分布式运算程序,实现资源统一管理。(2.0版本以后加入)
本篇博客将主要介绍HDFS的核心工作原理和机制。

HDFS整体运行机制

HDFS组成
NameNode:负责记录和管理元数据,通常有1个。
DataNode: 负责存储文件,通常有多个。

首先,HDFS有着文件系统共同的特征:
1、有目录结构,顶层目录是: /。
2、系统中存放的就是文件。
3、系统可以提供对文件的:创建、删除、修改、查看、移动等功能。

但是,HDFS跟普通的单机文件系统之间存在一些区别:
1、单机文件系统中存放的文件,是在一台机器的操作系统中。
2、HDFS的文件系统会横跨N多的机器。
3、单机文件系统中存放的文件,是在一台机器的磁盘上。
4、HDFS文件系统中存放的文件,是落在n多机器的本地单机文件系统中(HDFS是一个基于linux本地文件系统之上的文件系统)。
在这里插入图片描述
HDFS的工作机制
1、客户把一个文件存入HDFS,HDFS会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:DataNode),切块行为由客户端决定。

2、一旦文件被切块存储,那么HDFS中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:NameNode)。

3、为了保证数据的安全性,HDFS可以将每一个文件块在集群中存放多个副本,副本的数量由客户端指定。

综述:一个HDFS系统,由一台运行了NameNode的服务器,和N台运行了DataNode的服务器组成!

HDFS核心工作原理

1.NameNode元数据管理

在HDFS中,文件分块存储在不同的DataNode上,然而文件的块信息(包括块ID,副本数量,存储位置等)由NameNode负责记录和管理,这样的块信息又叫做元数据。元数据的更新管理如图所示。
在这里插入图片描述

  • NameNode将实时的完整元数据存储在内存中,并且在磁盘中存储内存元数据在某个时间点上的镜像文件,NameNode会把引起元数据变化的客户端操作记录在edits日志文件中。
  • SecondaryNameNode会定期从NameNode上下载fsimage镜像和新生成的edits日志,然后加载fsimage镜像到内存中,然后顺序解析edits文件,对内存中的元数据对象进行修改(整合),整合完成后,将内存元数据序列化成一个新的fsimage,并将这个fsimage镜像文件上传给namenode,上述过程叫做:checkpoint操作,该操作仅在第一次进行时需要下载。

2.客户端写数据到HDFS

  • 1.客户端向NameNode发起写文将请求;
  • 2.NameNode告知客户端可写;
  • 3.客户端向NameNode请求写入一个Block块;
  • 4.NameNode返回N个DataNode主机,N为客户端指定的副本数量;
  • 5.客户端选择一个DataNode请求建立数据连接,该DataNode与上述N-1个DataNode请求建立数据传输链路,DataNode一一响应,最终将响应结果回传客户端;
  • 6.客户端向DataNode写入第一个Block块的数据;
  • 7.重复3—6步骤写入剩余Block块的数据;
  • 8.数据全部写完后,告知NameNode;
  • 9.NameNode确认并记录元数据。

在这里插入图片描述

3.客户端从HDFS中读数据

  • 1.客户端向NameNode请求读数据;
  • 2.NameNode返回元数据信息;
  • 3.客户端从元数据中选择一个DataNode依次读取Block块;
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值