HDFS概述

简介: HDFS文件系统可存储超大文件,时效性稍差HDFS具有硬件故障检测和自动快速恢复功能HDFS为数据存储提供很强的扩展能力HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改HDFS可在普通机器上运行HDFS采用的Master/Slave架构一个HDFS集群有两个重要的角色,分别是NameNode 和DataNodeHDFS的四个基本组件:HDFS Client、NameNode、DataNode、和SecondaryNameNode1、Client就是客户端文件切分,文件上传HDFS的时候,
  • 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布式在集群上的文件系统为分布式文件系统。
  • HDFS(Hadoop Distributed File System)是Apache Hadoop项目的一个子项目,Hadoop非常适合存储大型数据(例如TB和PB),使用HDFS做为存储系统,HDFS使用多台计算机存储文件,并提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。
  • 分布式文件系统解决的问题就是大数据存储,横跨多台计算机的存储系统。

image.png
HDFS的特点
HDFS文件系统可存储超大文件,时效性稍差
HDFS具有硬件故障检测和自动快速恢复功能
HDFS为数据存储提供很强的扩展能力
HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改
HDFS可在普通机器上运行
image.png
HDFS的架构
HDFS采用的Master/Slave架构
一个HDFS集群有两个重要的角色,分别是NameNode 和DataNode
HDFS的四个基本组件:HDFS Client、NameNode、DataNode、和SecondaryNameNode
image.png
1、Client
就是客户端
文件切分,文件上传HDFS的时候,Client将文件切分成 一个一个的Block,然后进行存储
与NameNode交互,获取文件的位置信息
与DataNode交互,读取或写入数据
Client提供一些命令来管理,和访问HDFS,比如启动或者关闭HDFS。
image.png
2、NameNode
就是master,它是一个主管、管理者
管理HDFS元数据(文件路径、文件的大小、文件的名称、文件权限、文件的block切片信息)
配置副本策略
处理客户端读写请求
3、DataNode
就是Slave、NameNode下达命令,DataNode执行实际的操作
存储实际的数据块
执行数据块的读/写操作
定时向NameNode汇报block信息
4、SecondaryNameNode
并非NameNode的热备,当NameNode挂掉的时候,它并不能马上替换
辅助NameNode分担其工作量
在紧急情况下,可辅助恢复NameNode
HDFS的副本机制
HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件,它将每个文件存储成一系列的数据块,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的。
为了容错,文件的所有block都会有副本,每个文件的数据块大小和副本系数都是可配置的。
Hadoop2当中,文件的block块大小默认128M。
image.png
HDFS的Shell命令
安装好hadoop环境后,可以执行hdfs相关的shell命令对hdfs文件系统进行操作,比如文件的创建、删除、修改文件权限等。
对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等
hadoop fs #既可以操作HDFS,也可以操作本地系统或者
hdfs dfs # 只能操作HDFS系统
ls 命令
格式:hadoop fs -ls URI
作用:类似于Linux的ls命令,显示文件列表
hadoop fs -ls / # 显示文件列表
hadoop fs -ls -R # 递归显示文件列表
mkdir 命令
格式: hadoop fs -mkdir [-p]
作用:以中的URI做为参数,创建目录,使用-p参数可以递归创建目录
应用:hadoop fs -mkdir /dir1

        hadoop fs -mkdir -p/aaa/bbb/ccc  递归创建

put命令
格式:hadoop fs -put...
作用:将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中
应用:hadoop fs -put /root/1.txt /dir1 #上传文件

       hadoop fs -put /root/dir2 /        # 上传目录

get命令
格式:hadoop fs -get
作用:将HDFS文件考本到本地文件系统
应用:hadoop fs -get /initial-setup-ks.cfg /opt
mv命令
格式: hadoop fs -mv
作用:将hdfs上的文件从原路径src移动到目标路径dst,该命令不能夸文件系统
应用:hadoop fs -mv /dir1/1.txt /dir2
rm命令
格式:hadoop fs -rm [-r] [-skipTrash] URI [URI 。。。]
作用:
删除参数指定的文件和目录,参数可以有多个,删除目录需要加-r参数
如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;
否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。
应用:
hadoop fs -rm /initial-setup-ks.cfg #删除文件
hadoop fs -rm -r /dir2 #删除目录
cp命令
格式:hadoop fs -cp
作用:将文件拷贝到目标路径中
应用:hadoop fs -cp /dir1/1.txt /dir2
cat命令
格式:hadoop fs -cat
作用:将参数所指示的文件内容输出到控制台
应用:hadoop fs -cat /dir1/1.txt
HDFS的基准测试
在生产环境搭建后,要进行压力测试,测试集群的读取和写入速度,被称为基准测试。
写入速度测试
向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到/benchmarks/TestDFSIO中
hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB
测试读取速度
在HDFS文件系统中读入10个文件,每个文件10M
hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB
清除测试数据
hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -clean

目录
相关文章
|
2月前
|
存储 固态存储 文件存储
[hadoop3.x]HDFS存储类型和存储策略(五)概述
[hadoop3.x]HDFS存储类型和存储策略(五)概述
85 1
|
2月前
|
存储 分布式计算 资源调度
[hadoop3.x]HDFS中的内存存储支持(七)概述
[hadoop3.x]HDFS中的内存存储支持(七)概述
65 0
|
2月前
|
存储 分布式计算 Hadoop
[hadoop3.x]HDFS存储策略和冷热温三阶段数据存储(六)概述
[hadoop3.x]HDFS存储策略和冷热温三阶段数据存储(六)概述
83 0
|
11月前
|
存储 机器学习/深度学习 分布式计算
Hadoop基础学习---3、HDFS概述、HDFS的Shell操作、HDFS的API操作
Hadoop基础学习---3、HDFS概述、HDFS的Shell操作、HDFS的API操作
|
存储 机器学习/深度学习 分布式计算
Hadoop(HDFS)概述、HDFS产生背景、HDFS定义、HDFS优缺点、HDFS组成架构、HDFS文件块大小(面试重点)
Hadoop(HDFS)概述、HDFS产生背景、HDFS定义、HDFS优缺点、HDFS组成架构、HDFS文件块大小(面试重点)
Hadoop(HDFS)概述、HDFS产生背景、HDFS定义、HDFS优缺点、HDFS组成架构、HDFS文件块大小(面试重点)
|
分布式计算 Java 物联网
C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。
一、Hadoop环境配置概述       三台虚拟机,操作系统为:Ubuntu 16.04。       Hadoop版本:2.7.2       NameNode:192.168.72.132       DataNode:192.168.72.135,192.168.72.136       注:具配置过程,不具备介绍了,网上很多。
1855 0
|
1月前
|
存储 分布式计算 Hadoop
Hadoop Distributed File System (HDFS): 概念、功能点及实战
【6月更文挑战第12天】Hadoop Distributed File System (HDFS) 是 Hadoop 生态系统中的核心组件之一。它设计用于在大规模集群环境中存储和管理海量数据,提供高吞吐量的数据访问和容错能力。
272 4
|
26天前
|
存储 分布式计算 Hadoop
Hadoop的HDFS数据均衡
【6月更文挑战第13天】
34 3
|
1月前
|
存储 分布式计算 安全
|
1月前
|
存储 分布式计算 NoSQL