当前位置: 首页 > article >正文

HDFS概述

  •  在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布式在集群上的文件系统为分布式文件系统。
  • HDFS(Hadoop Distributed File System)是Apache Hadoop项目的一个子项目,Hadoop非常适合存储大型数据(例如TB和PB),使用HDFS做为存储系统,HDFS使用多台计算机存储文件,并提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。
  • 分布式文件系统解决的问题就是大数据存储,横跨多台计算机的存储系统。

HDFS的特点

HDFS文件系统可存储超大文件,时效性稍差

HDFS具有硬件故障检测和自动快速恢复功能

HDFS为数据存储提供很强的扩展能力

HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改

HDFS可在普通机器上运行

HDFS的架构

HDFS采用的Master/Slave架构

一个HDFS集群有两个重要的角色,分别是NameNode 和DataNode

HDFS的四个基本组件:HDFS Client、NameNode、DataNode、和SecondaryNameNode

1、Client

就是客户端

文件切分,文件上传HDFS的时候,Client将文件切分成 一个一个的Block,然后进行存储

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

与DataNode交互,读取或写入数据

Client提供一些命令来管理,和访问HDFS,比如启动或者关闭HDFS。

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。

HDFS的Shell命令

安装好hadoop环境后,可以执行hdfs相关的shell命令对hdfs文件系统进行操作,比如文件的创建、删除、修改文件权限等。

对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等

hadoop fs <args> #既可以操作HDFS,也可以操作本地系统或者

hdfs dfs <args> # 只能操作HDFS系统 

ls 命令

格式:hadoop fs -ls URI

作用:类似于Linux的ls命令,显示文件列表

hadoop fs -ls /  # 显示文件列表

hadoop fs -ls -R # 递归显示文件列表

mkdir 命令

格式: hadoop fs -mkdir [-p] <paths>

作用:以<paths>中的URI做为参数,创建目录,使用-p参数可以递归创建目录

应用:hadoop fs -mkdir /dir1

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

put命令

格式:hadoop fs -put<localsrc>...<dst>

作用:将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中

应用:hadoop fs -put /root/1.txt /dir1 #上传文件

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

get命令

格式:hadoop fs -get <src><localdst>

作用:将HDFS文件考本到本地文件系统

应用:hadoop fs -get /initial-setup-ks.cfg /opt

mv命令

格式: hadoop  fs  -mv  <src>   <dst>

作用:将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  <src>  <dst>

作用:将文件拷贝到目标路径中

应用:hadoop fs -cp /dir1/1.txt  /dir2

cat命令

格式:hadoop fs  -cat <filepath>

作用:将参数所指示的文件内容输出到控制台

应用: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


http://www.kler.cn/a/4408.html

相关文章:

  • 遗传算法 (Genetic Algorithm) 算法详解及案例分析
  • vue项目引入阿里云svg资源图标
  • 从网络的角度来看,用户输入网址到网页显示,期间发生了什么?
  • 我这不需要保留本地修改, 只需要拉取远程更改
  • React 第三方状态管理库相关 -- Redux MobX 篇
  • 【Go】Go Gin框架初识(一)
  • 查看mysql InnoDB引擎 线程模型信息
  • Modelsim仿真使用教程
  • Leetcode.1191 K 次串联后最大子数组之和
  • 数据结构之小端和大端之谜
  • Vue 点击图片放大显示功能
  • 11_nginx_document_uri
  • 信息打点-主机架构蜜罐识别WAF识别端口扫描协议识别服务安全
  • 测试开发进阶系列课程
  • 问卷中多选题该怎么分析?
  • 《毫无意义的工作》笔记——一个人的工作越明显对他人有益,他得到的酬劳就越低?
  • STM32之TIM编码器接口
  • uni-app使用uview组件中的封装
  • 【笔记】C# 泛型约束
  • 【华为OD机试 2023最新 】 回文字符串(C++)
  • 基于springboot实现校园在线拍卖电商系统【源码】
  • 小波阈值去躁
  • 除了四大“门派”菌,一文了解肠道菌群的其它17个小众“门派”细菌
  • Java 线程调度
  • C语言的灵魂---指针(进阶)
  • 两数之和(力扣刷题)