ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HDFS分布式文件系统知识点梳理(一)

2022-09-11 18:02:42  阅读:93  来源: 互联网

标签:知识点 fs HDFS hadoop DataNode 文件 分布式文件系统 txt


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)

标签:知识点,fs,HDFS,hadoop,DataNode,文件,分布式文件系统,txt
来源: https://www.cnblogs.com/zaevn00001/p/16684464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有