Hadoop3.0大数据处理学习2(HDFS)

news/2024/5/20 2:22:05 标签: hdfs, hadoop

一、简介

HDFS:Hadoop Distributed File System。Hadoop分布式存储系统
一种允许文件通过网络在多台主机上分享的文件系统,可以让多机器上的用户分享文件和存储空间。
两大特性:通透性、容错性

分布式文件管理系统的实现很多,HDFS只是其中一种,HDSF不适合存储小文件。GFS、TFS。

二、HDSF的shell

  • 使用格式:bin/hdfs dfs -[commond] [schema]😕/[authority]/[path]
  • HDFS的schema是hdfs,authority是NameNode的节点IP和对应的端口号(默认9000),path是我们要操作的路径信息。

操作commond

  • ls:查询指定路径信息
  • put:从本地上传文件
  • cat:查看hdfs文件内容
  • get:下载文件到本地
  • mkdir [-p]:创建文件夹(-p递归创建)
  • rm [-r]:删除文件/文件夹
# 查看
[root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -ls hdfs://cent7-1:9000/
Found 3 items
drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 hdfs://cent7-1:9000/hbase
drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 hdfs://cent7-1:9000/tmp
drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 hdfs://cent7-1:9000/user
# 上传文件(到根目录)
[root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -put README.txt hdfs://cent7-1:9000/
# 查看的简写
[root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -ls /
Found 4 items
-rw-r--r--   1 root supergroup       1361 2023-10-16 21:35 /README.txt
drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 /hbase
drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 /tmp
drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 /user
# 查看文件内容
[root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -cat /README.txt
For the latest information about Hadoop, please visit our website at:
# 下载文件
[root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -get /tmp
[root@cent7-1 hadoop-3.2.4]# ls
bin  etc  include  lib  libexec  LICENSE.txt  nohup.out  NOTICE.txt  README.txt  sbin  share  tmp
# 创建多级文件夹
[root@cent7-1 hadoop-3.2.4]# hdfs dfs -mkdir /dirtest
[root@cent7-1 hadoop-3.2.4]# hdfs dfs -mkdir /dirtest/xixi
## 或者使用命令[root@cent7-1 hadoop-3.2.4]# hdfs df s -mkdir -p /dirtest/xixi
[root@cent7-1 hadoop-3.2.4]# hdfs dfs -ls /
Found 5 items
-rw-r--r--   1 root supergroup       1361 2023-10-16 21:35 /README.txt
drwxr-xr-x   - root supergroup          0 2023-10-16 21:51 /dirtest
drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 /hbase
drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 /tmp
drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 /user
# 删除文件
[root@cent7-1 hadoop-3.2.4]# hdfs dfs -rm /README.txt
Deleted /README.txt
# 删除文件夹
[root@cent7-1 hadoop-3.2.4]# hdfs dfs -rm -r /dirtest
Deleted /dirtest

三、HDFS体系结构

  • hdfs包含:NameNode、SecondaryNameNode、DataNode(前俩个是在主节点启动,DataNode在从节点启动。而伪分布式启动三个)

NameNode(管理节点)

  • NameNode是整个文件系统的管理节点,主要维护整个文件系统的文件目录树,文件/目录的元信息,每个文件对应的数据块列表,并且还负责接受用户的操作请求。
  • NameNode文件保存在内存中,并持久化到磁盘的repo/dfs/name/current目录。包含以下文件类型:fsimage(某一时刻的元数据快照)、edits(修改操作日志)、seed_txid(存储edits文件id,在重启时,会按顺序执行,来恢复元数据信息。如果发现文件不存在,则NameNode不会启动)、VERSION(版本信息)。
  • 上面的文件保存路径是由hdfs-default.xml文件中的dfs.namenode.name.dir属性控制

SecondaryNameNode(合并操作)

  • 主要负责定期的把edits文件中的内容合并到fsimages中
  • 这个合并操作称为checkpoint,在合并的时候会对edits中的内容进行转换,生成新的内容保存到fsimages文件中
  • 距离上一次checkpoint已有一小时,或者对hdfs进行了100W次的操作。
  • 注意:在NameNode的HA架构中是没有SecondaryNameNode进程的,这个文件合并操作是由Standby NameNode负责实现的。

DataNode(从节点)

  • 提供真实文件数据的存储服务
  • HDFS会按照固定的大小、顺序来对文件进行划分编号,划分好的每个文件块称为Block,Hdfs默认Block大小是128MB。
  • HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间。

总结

NameNode维护了两份关系

  1. 第一个是File和Block List的关系,对应的关系信息存储在fsimages和edits文件中(当NameNode启动的时候会把文件中的内容加载到内存中)
  2. 第二个关系:DataNode与Block的关系(当DataNode启动的时候,会把当前节点上的Block信息和节点信息上报给NameNode)

http://www.niftyadmin.cn/n/5131521.html

相关文章

粤嵌实训医疗项目--day03(Vue + SpringBoot)

往期回顾 粤嵌实训医疗项目day02(Vue SpringBoot)-CSDN博客 粤嵌实训医疗项目--day01(VueSpringBoot)-CSDN博客 目录 一、SpringBoot AOP的使用 二、用户模块-注册功能(文件上传) 三、用户模块-注册实现…

如何分离一个要素的shp矢量文件:利用ArcGIS分割工具

下面介绍如何用ArcGIS对含有多个分离区域的一整个面要素进行分割 如下图,现在想要将下方的长形shp提取出来,首先打开shp文件: 右击空白处查看该矢量文件的投影信息: 在文件夹中新建shp文件,设置一样的投影&#xff1a…

5、计算电机速度【51单片机控制步进电机-TB6600系列】

摘要:本节介绍用定时器定时的方式,精准控制脉冲时间,从而控制步进电机速度。 一、计算过程 电机每一步的角速度等于走这一步所花费的时间,走一步角度等于步距角,走一步的时间等于一个脉冲的时间: TB6600及…

C++学习day--23 枚举、类型定义、头文件

1、枚举 1.1 枚举的概念 枚举是 C/C 语言中的一种基本数据类型, 它可以用于声明一组常数 。当一个变量有几个固 定的可能取值时,可以将这个变量定义为枚举类型。 比如,你可以用一个枚举类型的变量来表示季节,因为季节只有 4 …

数据结构与算法之LRU: 实现 LRU 缓存算法功能 (Javascript版)

关于LRU缓存 LRU - Lease Recently Used 最近使用 如果内存优先,只缓存最近使用的,删除 ‘沉睡’ 数据 核心 api: get set 分析 使用哈希表来实现, O(1)必须是有序的,常用放在前面,沉睡放在后面, 即:有序&#xff0…

prometheus监控etcd证书报错问题

背景 prometheus重启之后显示集群中的etcd节点全部down掉了。 在集群中查看etcd状态是正常的 进一步查看etcd日志发现 {"level":"warn","ts":"2023-10-27T07:52:58.389Z","caller":"embed/config_logging.go:169&q…

【信创】银河麒麟V10 本地部署yum数据源

1. 下载银河麒麟系统ISO镜像文件。 https://fdoc.epoint.com.cn:3366/ISO/麒麟V10/ wget https://fdoc.epoint.com.cn:3366/ISO/麒麟V10/Kylin-Server-10-SP1-Release-Build19-20210319-x86.iso 一般这个镜像文件会默认放置在/home目录下,如图: 挂载到…

rhcsa简单的查询命令

时间 date -s "20021125 12:00:00" date 052312002002 一.简单语法 hwclock --查看硬件时间 hwclock --show 查看硬件时间 hwclock -w 同步硬件时间和系统时间 hwclock -s 将硬件时钟同步到系统时间 hwclock -r 查看当前时间 cal 查看当前月份日历 cal 10 …