HDFS概述(一)

1. HDFS产出的背景及定义

1.1 HDFS产生的背景

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。

1.2 HDFS的定义

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。

2. HDFS的优缺点

2.1 优点:

1). 高容错性

(1)数据自动保存多个副本,它通过增加数据副本的样式,提高容错性

(2)某一个数据副本丢失以后,它可以自动恢复

2) 适合处理大数据

(1)数据规模:能够处理规模达到GB、TB、甚至PB的级的大数据 ;

3) 可构建在廉价机器上,通过多副本机制,提高可靠性。

2.2 缺点

1)不适合低时延的数据访问;

2)无法高效的对大量小文件进行存储:

(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件的目录和块信息;

(2)小文件的存储的寻址时间超过了读取时间,违反了HDFS的设计目标。

3)不支持并发的写入、文件随机修改

(1)一个文件只能有一个写,不允许多个线程同时写;

(2)仅支持数据的append(追加),不支持文件的随机修改

3. HDFS的组成架构

3.1 整体架构图如下:

3.2 HDFS架构详解

1)NameNode(简称:ND):就是master,它是一个主管人员,负责管理HDFS的相关信息:

(1)管理HDFS的名称空间;

(2)管理副本的策略;

(3)管理数据块(Block)的映射信息;

(4)处理客户端的读写请求。

2)DataNode(简称:DN):就是slave,NameNode下达指令,DataNode执行实际的操作:

(1)存储实际的数据块;

(2)执行数据块的读/写操作。

3)Client:客户端,与NameNode交互的程序,职责或功能如下:

(1)文件切分:在上传文件至HDFS的时候,Client会将文件分切成一个个的Block上传;

(2)与NameNode交互,可以获取文件的位置信息(存在哪个节点上)

(3)Client可以通过一些命令来访问HDFS,比如增删改查操作;

(4)Client通过一些命令来管理HDFS,比如将NameNode格式化。

4)SecondaryNameNode:并非是NameNode的热备。当NameNode挂掉的时候,它并不会立即替换NameNode并提供服务。

(1)辅助NameNode,分担其工作量,比如定期合并FsImage和Edits(后边会讲到,这里不用理解),并将合并后的FsImage.checkPoint推送给NameNode;

(2)在紧急情况下可以辅助恢复NameNode。

4 HDFS的文件块大小

1)HDFS中的文件在物理上是按照块(Block)存储的,块id大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x的版本中是128M,老版本的是64M。

2)块的大小设定:文件的寻址时间应为块文件的传输时间的1%,这是比较合理的设定。

3)思考:为什么块的大小不能设置太小,也不能设置太大?

(1)HDFS的块如果设置的太小,会增加寻址时间,程序长时间在寻找块的存储位置;

(2)如果设置太大,从磁盘传输的时间会明显大于定位这个块的起始位置所需的时间。导致在处理这个块的数据时,浪费了大量的时间在IO上。

因此,块的大小可以根据数据量和磁盘的IO速度决定如何设置。

HDFS概述(一)的更多相关文章

  1. HDFS概述

    HDFS概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS产出背景及定义 1>.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配 ...

  2. HDFS概述和Shell操作

    大数据技术之Hadoop(HDFS) 第一章 HDFS概述 HDFS组成架构 HDFS文件块大小 第二章 HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令    ...

  3. HDFS概述(6)————用户手册

    目的 本文档是使用Hadoop分布式文件系统(HDFS)作为Hadoop集群或独立通用分布式文件系统的一部分的用户的起点.虽然HDFS旨在在许多环境中"正常工作",但HDFS的工作 ...

  4. HDFS概述(5)————HDFS HA

    HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群 ...

  5. HDFS概述(4)————HDFS权限

    概述 Hadoop分布式文件系统(HDFS)的权限模型与POSIX模型的文件和目录权限模型一致.每个文件和目录与所有者和组相关联.该文件或目录将权限划分为所有者的权限,作为该组成员的其他用户的权限.以 ...

  6. HDFS概述(3)————HDFS Federation

    本指南概述了HDFS Federation功能以及如何配置和管理联合集群. 当前HDFS背景 HDFS主要有两层: 1.Namespace (1)包含目录,文件和块. (2)它支持所有命名空间相关的文 ...

  7. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

  8. HDFS概述(2)————Block块大小设置

    以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...

  9. Hadoop之HDFS概述

    一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...

随机推荐

  1. IOS13系统升级带来的H5兼容性问题

    20号新推送的IOS13给很多app厂商和RD带来了便秘的感觉,目前复现的问题如下,后续还会持续更新: 1.H5 hybrid输入框导致的页面上移,卡住不动.收起减半后,页面出现半截白屏.(IOS12 ...

  2. CentOS 7安装后的一些工作记录

    安装net-tools: yum install -y net-tools 安装epel源 yum install epel-release 安装fail2ban yum install fail2b ...

  3. Day 13 linux 的输入输出与管道的使用

    1.重定向概述 1.什么是重定向 将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中.比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中.这样第二天通过查看文件的内容就知道昨天备份 ...

  4. Java职责链模式

    一.定义 职责链模式,就是将能够处理某类请求事件的一些处理类,类似链条的串联起来.请求在链条上处理的时候,并不知道具体是哪个处理类进行处理的.一定程度上实现了请求和处理的解耦. 实际生活中的经典例子就 ...

  5. JDBC对Mysql utf8mb4字符集的处理

    写在前面 在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置 当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC ...

  6. SpringBootSecurity学习(14)前后端分离版之 OAuth2.0介绍

    登录总结 前面基本介绍了security的常规用法,同时介绍了JWT和它的一个简单实现,基本上开发中遇到的登录问题都能解决了,即使在分布式开发,或者微服务开发中实现登录也基本没有问题了.securit ...

  7. passwd、shadow、group文件格式

    [root@bogon ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash 登录名:密码占位符:UID:GID:注释:家目录:用户的默认shell ...

  8. redis查找大key

    redis中查找出比较大的key 下面直接上代码 (请在测试机上测试) #!/usr/bin/env python import sys import redis def check_big_key( ...

  9. 防DOS攻击-网络连接法

    #!/bin/bash netstat -antup | grep SYN_RECV | awk '{print $5}' |awk -F: '{print $1}'|sort|uniq -c > ...

  10. springboot与docker整合

    一.springboot与docker整合 a.创建Dockerfile FROM java MAINTAINER "Wing"<1561815137@qq.com> ...