Hadoop:HDFS--分布式文件存储系统

news2024/9/28 17:22:33

目录

 

HDFS的基础架构

VMware虚拟机部署HDFS集群

HDFS集群启停命令

HDFS Shell操作

hadoop 命令体系:

创建文件夹 -mkdir

 查看目录内容 -ls

 上传文件到hdfs -put

查看HDFS文件内容 -cat

下载HDFS文件 -get

复制HDFS文件 -cp

追加数据到HDFS文件中 -appendToFile

HDFS文件移动 -mv

 删除HDFS文件 -rm

 HDFS存储原理

存储原理

 修改副本数量

fsck检查文件副本状态

NameNode元数据

edits和fsimage文件

元数据合并参数

 SecondaryNameNode的作用

HDFS数据的读写请求


HDFS的基础架构

Hadoop由三个部分组成,分别是HDFS、MapReduce和yarn:

HDFS由三个角色,主角色、从角色、主角色辅助角色:

NameNode

  • HDFS系统的主角色,是一个独立的进程
  • 负责管理HDFS整个文件系统
  • 负责管理DataNode

SecondaryNameNode

  • NameNode的辅助,是一个独立进程
  • 主要帮助NameNode完成元数据整理工作

DataNode

  • HDFS系统的从角色,是一个独立进程
  • 主要负责数据的存储,即存入数据和取出数据

VMware虚拟机部署HDFS集群

第二章-04-[实操]VMware虚拟机部署HDFS集群_哔哩哔哩_bilibili

HDFS集群启停命令

$HADOOP_HOME/sbin/start-dfs.sh ,一键启动 HDFS 集群

执行原理:

在执行此脚本的机器上,启动 SecondaryNameNode
读取 core-site.xml 内容(fs.defaultFS项),确认 NameNode 所在机器,启动 NameNode
读取 workers 内容,确认 DataNode 所在机器,启动全部 DataNode
$HADOOP_HOME/sbin/stop-dfs.sh ,一键关闭 HDFS 集群

执行原理:

在执行此脚本的机器上,关闭SecondaryNameNode
读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode
读取workers内容,确认DataNode所在机器,关闭全部NameNode

      $HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停

用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)

或者 hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

HDFS Shell操作

hadoop 命令体系:

hadoop fs [generic options]  或者 hdfs dfs  [generic options]

没有任何区别

创建文件夹 -mkdir

hdfs dfs -mkdir [-p] <path> 

 查看目录内容 -ls

清测-ll等是不可行的 

hdfs dfs -ls [-h] [-R] [<path> ...] 

  -h 人性化显示文件   -R 递归查看指定目录及其子目录

 上传文件到hdfs -put

hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
  • -f 覆盖目标文件(已存在下)
  • -p 保留访问和修改时间,所有权和权限
  •   localsrc 本地文件系统(客户端所在机器)
  •   dst 目标文件系统(HDFS
  • 查看HDFS文件内容 -cat

  • hdfs dfs -cat <src> ...
    

    当文件很大时,可以配合more翻页

  • hdfs dfs -cat <src> | more
    

    下载HDFS文件 -get

  • hdfs dfs -get [-f] [-p] <src> ... <localdst>
    

    下载文件到本地文件系统指定目录localdst必须是目录

            -f 覆盖目标文件(已存在下)

            -p 保留访问和修改时间,所有权和权限

  • 复制HDFS文件 -cp

  • hdfs dfs -cp [-f] <src> ... <dst>
    

    src和dst都只能是hdfs的文件路径

  • 追加数据到HDFS文件中 -appendToFile

  • HDFS的文件修改只支持追加删除

  • hdfs dfs -appendToFile <localsrc> ... <dst>
    

    将localsrc的内容追加到dst

  • HDFS文件移动 -mv

  • hdfs dfs -mv <src> ... <dst>

            移动文件到指定文件夹下,可以使用该命令移动数据,重命名文件的名称

  •  删除HDFS文件 -rm

  • hdfs dfs -rm -r [-skipTrash] URI [URI ...]

    删除指定路径的文件或文件夹      -skipTrash 跳过回收站,直接删除

  • 回收站功能默认关闭,如果要开启需要在core-site.xml内配置:

    <property>

    <name>fs.trash.interval</name>

    <value>1440</value>

    </property>

    <property>

    <name>fs.trash.checkpoint.interval</name>

    <value>120</value>

    </property>

    无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。

    回收站默认位置在:/user/用户名(hadoop)/.Trash

  • 其他的一些用法跟linux里面是基本一致的

  •  HDFS存储原理

  • 存储原理

  • 将每个文件分成n(n个服务器)份,每一份又分成m个block(Block块,HDFS最小存储单位,每个256MB(可以修改))
  • 分成block的目的是统一hdfs的存储单元,便于管理

但是这样如果丢了一个block,那么整个文件都会失效,那么 使用备份解决

将每个block备份n份,放入不同的服务器

 修改副本数量

可以在hdfs-site.xml中配置属性以设置默认文件上传到HDFS中拥有的副本数量:

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

一般不需要设置,默认是3

除了配置文件外,我们还可以在上传文件的时候,临时决定被上传文件以多少个副本存储。

hadoop fs -D dfs.replication=2 -put test.txt /tmp/

如上命令,就可以在上传test.txt的时候,临时设置其副本数为2

对于已经存在HDFS的文件,修改dfs.replication属性不会生效,如果要修改已存在文件可以通过命令

hadoop fs -setrep [-R] 2 path

如上命令,指定path的内容将会被修改为2个副本存储。-R选项可选,使用-R表示对子目录也生效。

fsck检查文件副本状态

hdfs fsck path [-files [-blocks [-locations]]]

fsck可以检查指定路径是否正常

  • -files可以列出路径内的文件状态
  • -files -blocks  输出文件块报告(有几个块,多少副本
  • -files -blocks -locations 输出每一个block的详情

 

红色线表示副本数量(这里是总的数量,也就是总共3个block) 

蓝色的是三个block存放的位置,可以看到是存放在了三个不同的服务器

0:hdfs系统的状态  1:有多少个副本  2:丢失了多少blocks

NameNode元数据

edits和fsimage文件

Hadoop是通过NameNode来记录和整理文件和block的关系

NameNode基于一批edits和一个fsimage文件的配合完成整个文件系统的管理和维护

edits文件,是一个流水账文件,记录了hdfs中的每一次操作,以及本次操作影响的文件其对应的block,会有多个edits文件

将全部的edits文件,合并为最终结果,即可得到一个Fsimage文件

对于存放的位置,在hdfs-site.xml文件中,配置了

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>

那么此处的edits和fsimage就存放在了data/nn文件夹下的current文件夹

元数据合并参数

对于元数据合并成fsimage,是一个定时过程,基于两个参数

dfs.namenode.checkpoint.period,默认3600(秒)即1小时
dfs.namenode.checkpoint.txns,默认1000000,即100W次事务

只需要达到一个条件就需要合并

默认60秒检查一次是否符合条件,基于

dfs.namenode.checkpoint.check.period,默认60(秒),来决定

 SecondaryNameNode的作用

SecondaryNameNode会通过httpNameNode拉取数据(editsfsimage)然后合并完成后提供给NameNode使用

HDFS数据的读写请求

数据写入流程

  1. 1. 客户端向NameNode发起请求
  2. 2. NameNode审核权限、剩余空间后,满足条件允许写入,并告知客户端写入的DataNode地址(一般来说会分配网络距离最近的datanode)
  3. 3. 客户端向指定的DataNode发送数据包
  4. 4. 被写入数据的DataNode同时完成数据副本的复制工作,将其接收的数据分发给其它DataNode
  5. 5. 写入完成客户端通知NameNodeNameNode做元数据记录工作
  6. 数据读取流程
  7. 1、客户端向NameNode申请读取某文件
  8. 2 NameNode判断客户端权限等细节后,允许读取,并返回此文件的block列表
  9. 3、客户端拿到block列表后自行寻找DataNode读取即可(会去找最近的datanode)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第 3 章 栈和队列(汉诺塔问题递归解法)

1. 背景说明 假设有 3 个分别命名为 X、Y 和 Z 的塔座&#xff0c;在塔座 X 上插有 n 个直径大小各不相同、依小到大编号为 1, 2&#xff0c;…&#xff0c;n 的圆盘。 现要求将 X 轴上的 n 个圆盘移至塔座 Z 上并仍按同样顺序叠排&#xff0c;圆盘移动时必须遵循下列规则&…

伦敦金的走势高低的规律

伦敦金市场是一个流动性很强的市场&#xff0c;其价格走势会在诸多因素的影响下&#xff0c;出现反复的上下波动&#xff0c;如果投资者能够在这些高低走势中找到一定的规律&#xff0c;在相对有利的时机入场和离场&#xff0c;就能够通过不断的交易&#xff0c;累积大量的财富…

浏览器渲染原理及流程

浏览器主要组成与浏览器线程 浏览器组件 浏览器大体上由以下几个组件组成&#xff0c;各个浏览器可能有一点不同。 界面控件 – 包括地址栏&#xff0c;前进后退&#xff0c;书签菜单等窗口上除了网页显示区域以外的部分浏览器引擎 – 查询与操作渲染引擎的接口渲染引擎 – …

记录vite下使用require报错和解决办法

前情提要 我们现在项目用的是vite4react18开发的项目、但是最近公司有个睿智的人让我把webpack中的bpmn组件迁移过来、结果就出现问题啦&#xff1a;因为webpack是commonjs规范、但是vite不是、好像是es吧、可想而知各种报错 废话不多说啦 直接上代码&#xff1a; 注释是之前c…

生成式AI爆发,安全问题如何解决?

在生成式AI浪潮下&#xff0c;如何为行业用户提供符合实际应用场景需求的生成式AI服务&#xff0c;是行业数字化转型的下一个重点。《亚马逊云科技AIGC加速企业创新指南》白皮书指出&#xff0c;AIGC在游戏、零售电商、金融、媒体娱乐、医疗健康等行业都有典型应用场景。作为 A…

冠达管理:股票退市整理期?

近些年来&#xff0c;随着我国股市的发展&#xff0c;股票市场的出资者逐渐增多。但在出资过程中&#xff0c;退市股票的问题也成为了备受重视的论题。那么&#xff0c;股票退市收拾期到底是什么&#xff1f;如何应对退市股票&#xff1f; 首要&#xff0c;什么是股票退市收拾…

设备管理系统有什么功能?它有什么用?

设备管理系统已成为现代化大规模研究所&#xff0c;信息化管理体系建设中最为关键的要素。随着工业设备的机械化、自动化、大型化、高速化以及复杂化等因素不断叠加&#xff0c;设备设施对于工业生产的作用和影响越来越大&#xff0c;其各项制度和流程也涉及面广、内容繁杂。  …

中企绕道突破封锁,防不胜防 | 百能云芯

韩国的财经媒体Business Korea最新报道指出&#xff0c;尽管美方在《通胀削减法案》&#xff08;IRA&#xff09;的补贴中排除了中国&#xff0c;但中国企业正通过多种方式积极应对美国在半导体和电动汽车电池领域的封锁&#xff0c;这包括建立合资企业、设立生产基地以及开展技…

STDF-Viewer 解析工具说明

一、简介 1. 概述 STDF&#xff08;Standard Test Data Format&#xff09;&#xff08;标准测试数据格式&#xff09;是半导体测试行业的最主要的数据格式&#xff0c;包含了summary信息和所有测试项的测试结果&#xff1b;是半导体行业芯片测试数据的存储规范。 在半导体行业…

城市排水监测方案(dtu终端配合工业路由器精准监测)

台风季节,暴雨容易导致城市内涝积水。为有效监测排水状况,预警和防控积水灾害,星创易联推出智慧排水监测解决方案。 解决方案采用星创易联DTU300作为水位数据采集终端,它可挂载在河道及排水井等地点,实时监测水位变化,一旦超过预警阈值,立即通过4G网络传输报警信息,实现对水位…

使用Kmeans进行图像聚类

Kmeans可以用于与发现聚类相关的其他任务 介绍 聚类是一种无监督机器学习技术。这意味着您的数据集没有标签&#xff0c;即与解释变量发现的模式关联的目标变量。 无监督学习是找到看似相似的模式并将它们放入同一个桶中的过程。 最常用的无监督学习算法之一是Kmeans&#xff…

冠达管理:紧盯必要性 追问合理性 再融资问询透露监管新动向

在“活泼资本市场&#xff0c;提振出资者决心”一系列办法落地之后&#xff0c;再融资市场整体已明确收紧&#xff0c;但审阅尺度、相关细则还有待进一步观察。有接受采访的投行人士指出&#xff0c;现在存量项目仍在持续推进&#xff0c;监管审阅要点已在问询环节有较为充沛的…

2.7 PE结构:重定位表详细解析

重定位表&#xff08;Relocation Table&#xff09;是Windows PE可执行文件中的一部分&#xff0c;主要记录了与地址相关的信息&#xff0c;它在程序加载和运行时被用来修改程序代码中的地址的值&#xff0c;因为程序在不同的内存地址中加载时&#xff0c;程序中使用到的地址也…

单月打造8个10w+,情感类视频号如何爆火?

上月&#xff0c;腾讯公布了2023年Q2财报&#xff0c;其中&#xff0c;较为亮眼的是微信视频号的广告收入。据财报显示&#xff0c;二季度视频号用户使用时长与去年同期相比几乎翻倍&#xff0c;广告收入超过30亿元。作为微信生态的核心组件&#xff0c;视频号的内容生态呈现出…

C/C++浮点数向零舍入 2019年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C浮点数向零舍入 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C浮点数向零舍入 2019年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 输入一个单精度浮点数&#…

09-JVM垃圾收集底层算法实现

上一篇&#xff1a;08-JVM垃圾收集器详解 1.三色标记 在并发标记的过程中&#xff0c;因为标记期间应用线程还在继续跑&#xff0c;对象间的引用可能发生变化&#xff0c;多标和漏标的情况就有可能发生。 这里我们引入“三色标记”来给大家解释下&#xff0c;把Gcroots可达性…

uni-app动态tabBar,根据不同用户展示不同的tabBar

1.uni框架的api实现 因为我们用的是uni-app框架开发&#xff0c;所以在创建项目的时候直接创建uni-ui的项目即可&#xff0c;这个项目模板中自带了uni的一些好用的组件和api。 起初我想着这个效果不难实现&#xff0c;因为官方也有api可以直接使用&#xff0c;所以我最开始尝试…

DeeTune:基于 eBPF 的百度网络框架设计与应用

作者 | 百度APP云原生技术研发组 导读 随着云计算的技术的不断迭代演进&#xff0c;百度内部服务逐渐搬迁到云环境中&#xff0c;部署成本和效率取得明显收益&#xff0c;但一些可观测能力的短板和缺失逐渐显露&#xff0c;传统的方式往往通过植入代码进行修改来实现&#xff0…

esp-hosted 方案介绍

esp-hosted SDK esp-hosted 方案介绍 esp-hosted 方案主要为 Linux 或者 MCU 提供无线连接功能&#xff08;WiFi 或者 BT/BLE&#xff09; esp-hosted 解决方案包含了 esp-hosted FG 和 esp-hosted NG 两套方案 与传统 WiFi 网卡的区别在于 ESP 设备端需要烧录固件&#xff0…

RGMII 与 GMII 转换电路设计

文章目录 前言一、RGMII 接口的信号说明二、RGMII 发送的 FPGA 实现方案1. OPPOSITE_EDGE 模式2. SAME_EDGE 模式三、使用 FPGA 实现 RGMII 接口前言 RGMII 是 IEEE802.3z 标准中定义的千兆媒体独立接口(Gigabit Medium Independent Interface)GMII 的一个替代品。相较于 GM…