HDFS基础 (一) 概述

一、HDFS概述

  HDFS是分布式文件管理系统。

  应用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用于数据分析

 

二、HDFS组成架构

 

HDFS由单个namenode和多个datanode组成。

NameNode(nn):Master——主管、管理者

  作用:1)管理HDFS命名空间; 2)配置副本策略;3)管理数据块(block)映射信息;4)处理客户端读写请求。

DataNode:Slave——数据节点

  作用:1)存储实际的数据库;2)执行数据库的读/写操作。(NameNode下达命令,DataNode执行实际的操作)。

Client:客户端

  作用:1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;

     2)与NameNode交互,获取文件的位置信息;

     3)与DateNode交互,读取或者写入数据;

       4)Client提供一些命令来管理HDFS,比如:NameNode的格式;

       5)Client通过一些命令来访问HDFS,比如对HDFS增删改查操作;

SecondaryNameNode:并不是NameNode的热备,NameNode挂掉时,并不能马上替换NameNode并提供服务。

  作用:1)辅助NameNode,分担其工作量;

     2)在紧急情况下,可以辅助恢复NameNode;

 

三、HDFS文件块大小

1、HDFS文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来配置,默认大小是128M;

2、如果寻址时间是10ms,即查找目标block的时间为10ms

3、寻址时间为传输时间的1%时,则为最佳状态。即传输时间=10/0.1ms=1m

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

  1)设置太小会增加寻址时间,程序一直在找块的开始位置

  2)设置太大,从磁盘传输数据的时间会明显大于定位这个块位置所需的时间,导致程序在处理这块数据时,非常慢

总结:HDFS块大小设置主要取决于磁盘的传输速率

 

posted on 2020-05-27 22:02  天赋不足勤来补  阅读(159)  评论(0)    收藏  举报

导航