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分布式文件系统知识点梳理(一)的更多相关文章

  1. HDFS分布式文件系统资源管理器开发总结

      HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...

  2. 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析

    通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...

  3. Hadoop HDFS分布式文件系统 常用命令汇总

    引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...

  4. Hadoop基础-HDFS分布式文件系统的存储

    Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...

  5. 认识HDFS分布式文件系统

    1.设计基础目标 (1) 错误是常态,需要使用数据冗余  (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理.  (3)文件采用一次性写多次读的模型, ...

  6. 1、HDFS分布式文件系统

    1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...

  7. 我理解中的Hadoop HDFS分布式文件系统

    一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...

  8. 大数据基础总结---HDFS分布式文件系统

    HDFS分布式文件系统 文件系统的基本概述 文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易. 文件名:在文件系统中,文件名是用于定位存储位置. 元数据(Metad ...

  9. hdfs(分布式文件系统)优缺点

    hdfs(分布式文件系统) 优点 支持超大文件 支持超大文件.超大文件在这里指的是几百M,几百GB,甚至几TB大小的文件.一般来说hadoop的文件系统会存储TB级别或者PB级别的数据.所以在企业的应 ...

  10. 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)

    1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...

随机推荐

  1. 人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF

    人工智能LLM模型:奖励模型的训练.PPO 强化学习的训练.RLHF 1.奖励模型的训练 1.1大语言模型中奖励模型的概念 在大语言模型完成 SFT 监督微调后,下一阶段是构建一个奖励模型来对问答对作 ...

  2. 【LLM】提示工程技术提炼精华分享

    一.提示工程概述 提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域 ...

  3. Oracle查询存在外键约束但未创建对应索引的情况

    1.Oracle提供的脚本 2.网络搜索到的脚本 3.改为可以指定用户的脚本 4.测试脚本使用 1.Oracle提供的脚本 如果要求管控严格,可以考虑使用Oracle官方提供的脚本. Script t ...

  4. scrapy框架使用:分布式、增量式

    scrapy框架的使用 前记:爬虫框架部分整理完成,后续慢慢完善, 声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 创建工程: scrapy startproje ...

  5. 2023 NOI春季测试游记

    前言: 知周所众,在 2023.3.4 ,圈钱因部分地区 NOIP 趋势了而组织举办了春测,这个蒟蒻本来没有 NOIP 的资格,但却去上了春测. 3.2 晚上jijidawang来发表,结果少无数份( ...

  6. JS leetcode 有序数组的平方 题解分析,灵活运用Math.pow与Math.abs方法

    壹 ❀ 引 郁闷的周一,晚上来做一道简单的算法题提提神,题目来自leetcode977. 有序数组的平方,题目描述如下: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也 ...

  7. ELK查询和汇总

    查询表明细: ELK的KQL样例,显示时间请选择最近15天: 样例1:查询ol_lc 表增删改查,不是jy2_rw的账号明细 KQL:(ol_lc or oc.ol_lc) and (select o ...

  8. image could not be accessed on a registry to record its digest

    问题说明: 在管理节点执行docker stack xxx 方式运行服务,报如题错误. 问题原因: docker swarm运行需要一个镜像仓库才行,所有节点都去这个仓库统一镜像. 来看下官方的解释: ...

  9. ORA-31655,ORA-39154 Objects from foreign schemas have been removed from import

    问题说明 在执行数据泵导入时提示错误: 问题原因 执行导入的用户缺少导入数据库的权限. 解决问题 给用户赋予导入数据库权限: grant imp_full_database to 用户; 然后重新执行 ...

  10. golang获取windows版本和详细信息

    场景: 将木马丢到感染机运行后回连时希望返回感染机的操作系统信息.golang 可以通过runtime.OS获取到操作系统类型,但是无法获取详细的版本信息,如win7 win10等, 解决方案; 下面 ...