当前位置: 首页 > news >正文

浅谈HDFS--基本操作

1.什么是HDFS

HDFS 是 Hadoop 系统中的核心组件之一,全称是 Hadoop Distributed File System(Hadoop 分布式文件系统)

一句话总结:

HDFS 就是一种可以把大文件切成一块一块,分布在很多台机器上存储,并统一管理的“超级硬盘系统”。


📦 举个例子:搬家打包

想象你现在要搬家,有一个超大的箱子(文件)要运,但你的小车(电脑硬盘)装不下。

于是你:

  • 把这个大箱子切成小箱子(Block)

  • 分别放在你朋友家的车上(分布在不同的服务器)

  • 然后自己做个清单,记下哪一块放在哪辆车上(元数据)

这个“切分 + 分发 + 统一管理”的方法,就是 HDFS 的核心思路!


🏗️ HDFS 的结构

HDFS 分成两种角色:

角色功能
NameNode就像“总调度”,专门负责记录每个文件的目录、文件名、放在哪台机器上(元数据 Metadata
DataNode真正的“搬运工”,负责存储文件的内容(数据块 Block

🔁 文件的存储过程是怎样的?

  1. 你上传了一个大文件(比如 1GB 视频)

  2. HDFS 自动把它分成很多小块(默认每块 128MB)

  3. 每块会被复制 3 份(默认副本数 = 3),存放在不同的机器(为了防止机器坏了)

  4. NameNode 记录下:哪个文件被切成几块、每块在哪台机器


2.基本操作

a.启动 HDFS

打开终端后,输入:

$ start-dfs.sh

这会启动 Hadoop 的文件系统服务。

检查是否启动成功

输入:

$ jps

你应该能看到这三个 Java 进程(它们是 HDFS 的组成):

  • NameNode:总管,管理元数据(比如哪台机器有哪个文件块)

  • DataNode:真正存文件的地方

  • SecondaryNameNode:备份 NameNode 的信息


b.操作 HDFS 文件系统 

🔍 查看默认目录

你的默认目录是 /user/user(因为用户名是 user),尝试列出里面的内容:

$ hdfs dfs -ls

一开始会出错,因为这个目录还没创建。


📂 创建目录

你可以这样一步步创建:

$ hdfs dfs -mkdir /user$ hdfs dfs -mkdir /user/user

或者一步完成(推荐):

$ hdfs dfs -mkdir -p /user/user

再试一次列出目录内容:

$ hdfs dfs -ls

这次不会报错了,只是结果是空的。


c.添加文件到 HDFS 

在服务器的本地文件系统(就像你电脑的桌面)中,有一个叫 text.txt 的文件。

👀 查看本地文件:

$ ls

你会看到 text.txt

📤 把本地文件上传到 HDFS:

$ hdfs dfs -put text.txt

然后再次列出 HDFS 中的文件

$ hdfs dfs -ls

你现在应该看到 text.txt 已经出现在 /user/user 目录里了!


d.在 HDFS 中创建子目录

比如你想建个叫 files 的子目录:

$ hdfs dfs -mkdir files 
$ hdfs dfs -ls

你应该能看到:text.txtfiles


🔀 移动文件

text.txt 移动到 files 目录:

$ hdfs dfs -mv text.txt files

现在列出根目录:

$ hdfs dfs -ls

你会发现只剩下 files,再列出子目录内容:

$ hdfs dfs -ls files

现在 text.txtfiles 目录中了!


📋 复制文件

复制 text.txt 并重命名为 text2.txt

$ hdfs dfs -cp files/text.txt files/text2.txt$ hdfs dfs -ls files

你会看到两个文件:text.txttext2.txt


✏️ 重命名文件

其实重命名就是移动到同一目录,但改个名字:

$ hdfs dfs -mv files/text2.txt files/moretext.txt$ hdfs dfs -ls files

现在文件名变成 moretext.txt 了。


🗑 删除文件

删除 moretext.txt

$ hdfs dfs -rm files/moretext.txt$ hdfs dfs -ls files

它就从 HDFS 中被删除了。


📖 查看文件内容

想看看 text.txt 里面写了什么:

$ hdfs dfs -cat files/text.txt

 

 

e.从 HDFS 下载文件到本地(服务器本地)

$ hdfs dfs -get files/text.txt text2.txt
$ ls

你应该看到本地又多了一个 text2.txt。


总结 

操作命令示例
启动 HDFSstart-dfs.sh
查看进程jps
创建目录hdfs dfs -mkdir -p /user/user
上传文件hdfs dfs -put text.txt
列出文件hdfs dfs -ls
移动文件hdfs dfs -mv text.txt files
复制文件hdfs dfs -cp files/text.txt files/text2.txt
重命名文件hdfs dfs -mv files/text2.txt files/moretext.txt
删除文件hdfs dfs -rm files/moretext.txt
查看文件内容hdfs dfs -cat files/text.txt
下载到本地hdfs dfs -get files/text.txt text2.txt

相关文章:

  • 「AI产业」| 《2025中国低空经济商业洞察报告(商业无人机应用篇)》
  • C++11的特性上
  • 【算法篇】逐步理解动态规划模型6(回文串问题)
  • 室内腔体耦合器
  • 遍历 unordered_map
  • 依存句法分析
  • 【群体结构ADMIXTURE之三】监督分群在祖先成分分析中的应用及原理
  • 剑指offer22_合并两个排序的链表
  • 386.字典序排序
  • Xshell 8 客户端 免费版无需注册
  • 内核性能调优
  • Java八股文——Spring「SpringCloud 篇」
  • 代码随想录算法训练营第60期第六十五天打卡
  • C++默认构造函数被隐式删除
  • 某区域汽车多家4S店销售数据重叠度分析
  • 汇编(函数调用)
  • Node.js版本管理
  • LangChain文档加载器自动选择器:支持多种文件格式的统一加载方法
  • SpreadJS 在预算编制中的应用深度剖析
  • 日本滨松R669光电倍增管Hamamatsu直径51 mm 直径端窗型扩展红多碱光阴极面光谱灵敏度特性:300 至 900 nm
  • wp网站开发/百度app下载最新版
  • 微网站不能分享朋友圈/张雷明任河南省委常委
  • 盗版网站是如何做的/百度公司招聘
  • 广东高端网站建设/深圳百度关键
  • 查降权网站/百度客服中心人工电话
  • 如何做好网站推广优化/我赢网seo优化网站