HDFS分布式文件系统知识点梳理(一)
HDFS分布式文件系统
一、HDFS简介
HDFS是Hadoop Distribute File System,翻译成中文就是Hadoop 分布式文件系统,它是Hadoop的核心组成部分,是一个分布式存储服务。
HDFS实现了横跨多台计算机进行文件管理的功能,这就为存储和处理超大规模的数据提供所需要的扩展能力。
HDFS是分布式文件系统中的一种,广泛应用于大数据。
二、HDFS重要概念
HDFS通过统一的命名空间目录树来定位文件;它是通过集群的架构来实现其功能,集群中的服务器有各自的角色。
HDFS是典型的的MAster/Slave架构(主从)
HDFS集群往往是由一个NameNode + 多个DataNode组成,其中NameNode是集群的主节点,而DataNode是集群的从节点。(在HA架构中会存在两个NameNode,这是一种联邦机制)
分块存储(block机制)
HDFS中的文件在物理上是分块存储的,块的大小可以通过配置参数来决定;
Hadoop2.x版本中默认的block大小为128M。
命名空间(NameSpace)
HDFS支持传统的层次型的文件组织结构,客户端可以去创建目录,然后将文件保存在这些目录中,而文件系统名字空间的层次结构也和现有的大多数文件系统类似。
HDFS提供给客户一个抽象的目录树,访问形式为:hdfs://namenode的hostname:端口号/具体的文件目录
NameNode元数据管理
我们把目录结构以及文件分块位置信息叫做元数据。
NameNode的元数据记录了每一个文件所对应的block信息,包括block的id以及所在的DataNode节点的信息。
DataNode数据存储
文件的各个block的具体存储管理由DataNode节点来承担。一个block会有多个DataNode来存储,DataNode会定时向NameNode来汇报自己持有的block信息。
副本机制
为了容错,文件所有的block都会有副本。每个文件的block大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。副本的数量默认是3个。
一次写入,多次读出
HDFS是设计成适应一次写入,多次读出的场景,且不支持文件的随机修改。(支持追加写入insert操作,不支持随机更新update操作),因此它适合用来做大数据分析的底层存储服务。
三、HDFS架构

- NameNode:HDFS集群的管理者,是架构中的Master节点
- 维护管理hdfs的名称空间-NameSpace
- 维护副本策略
- 记录文件块Block的映射信息
- 负责处理客户端读写请求
- DataNode:NameNode下达命令,DataNode执行实际的操作,是架构中的Slave节点
- 保存实际的数据块
- 负责数据块的读写
- Client:客户端
- 上传文件到HDFS的时候,Client负责将文件切分成Block,然后进行上传
- 请求NameNode交互,获取文件的位置信息
- 读取或写入文件,与DataNode交互
- Client可以使用一些命令来管理HDFS或者访问HDFS
四、HDFS客户端操作
4.1 Shell命令行操作HDFS
1.基本语法
bin/hadoop fs 具体命令
bin/hdfs dfs 具体命令
2.常用命令演示
# -help:输出某个命令参数
hadoop fs -help + 命令
# -ls:显示目录信息
hadoop fs -ls /
# -mkdir:在hdfs上创建目录
hadoop fs -mkdir -p /zae/bigdata
# -moveFromLocal:将本地的剪切粘粘到HDFS
touch hadoop.txt
hadoop fs -moveFromLocal ./hadoop.txt /zae/bigdata
# -appendToFile:追加一个文件到已经存在的文件结尾
touch new.txt
vi new.txt
在文件中输入:namenode datanode block replication
保存后键入命令:
Hadoop fs -appendToFile new.txt /zae/bigdata/old.txt
# -cat 显示文件内容
hadoop fs -cat /zae/bigdata/hadoop.txt
# -chgrp修改文件所在组群,-chmod修改文件的权限 -chown修改文件所有者
hadoop fs -chmod 666 /zae/bigdata/hadoop.txt
hadoop fs -chown root:root /zae/bigdata/hadoop.txt
# -copyFromLocal:从本地文件系统中拷贝文件到HDFS路径中去
hadoop fs -copyFromLocal README.txt
# -copyToLocal:从HDFS拷贝到本地
hadoop fs -copyToLocal /zae/bigdata/hadoop.txt ./
# -cp:从HDFS的一个路径拷贝到HDFS的另一个路径
hadoop fs -cp /zae/bigdata/hadoop.txt /hdfs.txt
# -mv:在HDFS目录中移动文件
hadoop fs -mv /hdfs.txt /zae/bigdata/
# -get:等同于copyToLocal,将HDFS文件下载到本地
hadoop fs -get /lagou/bigdata/hadoop.txt ./
# -put:等同于copyFromLocal
hadoop fs -mkdir -p /user/root/test/ #在HDFS中创建多级目录文件夹
touch yarn.txt #在本地文件系统创建yarn.txt文件
vim yarn.txt #编辑文件,随便写些内容
hadoop fs -put ./yarn.txt /user/root/test/
# -tail:显示一个文件的末尾
hadoop fs -tail /user/root/test/yarn.txt
# -rm:删除文件或者文件夹
hadoop fs -rm /user/root/test/yarn.txt
# -rmdir:删除空目录
hadoop fs -mkdir /test #创建
hadoop fs -rmdir /test #删除
#-du统计文件夹的大小信息
hadoop fs -du -s -h /user/root/test
hadoop fs -du -h /user/root/test
# -setrep:设置HDFS中文件的副本数量
hadoop fs -setrep 10 /zae/bigdata/hadoop.txt
(备注,这里设置的副本数只是记录在NameNode的元数据中,是否真的会产生那么多的副本,还是得看DataNode的数量。比如如果目前仅仅有3个设备,那么即使设置了10,那最多也只能有3个副本,只有当DataNode节点数增加到10的时候,副本数才有可能达到10)
HDFS分布式文件系统知识点梳理(一)的更多相关文章
- HDFS分布式文件系统资源管理器开发总结
HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...
- 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析
通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...
- Hadoop HDFS分布式文件系统 常用命令汇总
引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- 认识HDFS分布式文件系统
1.设计基础目标 (1) 错误是常态,需要使用数据冗余 (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理. (3)文件采用一次性写多次读的模型, ...
- 1、HDFS分布式文件系统
1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...
- 我理解中的Hadoop HDFS分布式文件系统
一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...
- 大数据基础总结---HDFS分布式文件系统
HDFS分布式文件系统 文件系统的基本概述 文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易. 文件名:在文件系统中,文件名是用于定位存储位置. 元数据(Metad ...
- hdfs(分布式文件系统)优缺点
hdfs(分布式文件系统) 优点 支持超大文件 支持超大文件.超大文件在这里指的是几百M,几百GB,甚至几TB大小的文件.一般来说hadoop的文件系统会存储TB级别或者PB级别的数据.所以在企业的应 ...
- 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)
1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...
随机推荐
- vim 从嫌弃到依赖(0)——概述
最近我想开一个新的系列,记录我使用vim的相关心得.初次接触vim是在大学操作系统实践课程中,跟着Linux一块进行学习的.当初我是百般嫌弃它的,想要进行编辑还要按下其他键,我想要移动光标居然还的切换 ...
- 阿里天池实验室简明教程以及Docker安装使用[一]
1.天池notebook简介和使用 天池实验室是基于PAI DSW探索版开发的,PAI DSW (Data Science Workshop)是为算法开发者量身打造的云天池实验室是基于PAI DSW探 ...
- 热门数据集提供【MNIST、鸢尾花、猫狗、CIFAR10、vegetables、Ox-Flowers17、pascalvoc】
热门数据集提供[MNIST.鸢尾花.猫狗.CIFAR10.vegetables.Ox-Flowers17.pascalvoc] 简介: 鸢尾花数据集: 约150条数据,每条样本4个属性,共3个类别 M ...
- C/C++ 感染标志与空字节感染
C/C++ 通过搜索PE结构中的空隙部分,对指定文件写入感染标志,作用是,如果程序被感染过则不再继续感染,而搜索空字节,则是要将恶意代码动态的填充到可执行文件中,并劫持执行流,以下代码就是这两种代码的 ...
- Gitee API的使用|如何批量删除Gitee下的所有仓库
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...
- PHP常用类
PHP常用类 一.分页类 <?php /** * 分页类 * 调用方式: * $p=new Page(总条数,显示页码链接数量,当前页码,每页显示条数,[链接]); * print_r($p-& ...
- Java 重复注解 @Repeatable
1. 设计一个重复使用的注解: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Repeatable(AppSpecs.c ...
- DbgridEh 1900-01-01 00:00:00 问题解决
--------------------------------------------------
- 沿SVG路径的颜色渐变
原生的渐变方法 在SVG中提供的原生渐变方法有两种,分别为线性渐变linearGradient和径向渐变radialGradient.我们以一个稍微复杂的路径来作为模板,为其添加两种渐变效果: < ...
- NC204418 新集合
题目链接 题目 题目描述 集合 \(s\) 中有整数 \(1\) 到 \(n\) ,牛牛想从中挑几个整数组成一个新的集合. 现在牛妹给牛牛加了 \(m\) 个限制 ,每个限制包含两个整数 \(u\) ...