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

一、简介

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]:删除文件/文件夹
shell 复制代码
# 查看
[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)
相关推荐
非极限码农4 小时前
Hive SQL (HQL) 编辑指南
hive·hadoop·sql
非极限码农7 小时前
Hive数仓部署/分层/ETL脚本基础指南
数据仓库·hive·hadoop·etl
cici158749 小时前
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
java·linux·hadoop
lifallen12 小时前
hadoop.yarn 带时间的LRU 延迟删除
java·大数据·数据结构·hadoop·分布式·算法
哈哈很哈哈1 天前
Hadoop JMX 配置的完整文档
大数据·hadoop·分布式
jzy37111 天前
国产化适配鲲鹏arm环境:hive on tez 单节点部署实践总结
linux·hadoop·apache hive
wzy06232 天前
基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(三)
hadoop·impala
wzy06232 天前
基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(二)
hive·hadoop·impala·sparksql
wzy06232 天前
基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(一)
hadoop·impala
wzy06232 天前
基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(六)
hadoop·hue