二、分布式文件系统HDFS及其简单使用
发布时间 - 2025-07-15 00:00:00 点击率:次在当今的企业环境中,单台计算机的存储容量通常不足以应对海量数据的需求,因此需要跨机器进行存储。这种跨机器统一管理的文件系统被称为分布式文件系统。
HDFS(Hadoop Distributed File System)是Apache Hadoop项目的一部分,专门用于存储大规模数据(如TB和PB级别),它以HDFS作为其存储系统。HDFS通过多台计算机存储文件,并提供统一的访问接口。
HDFS的设计灵感来源于谷歌的论文《The Google File System》。
HDFS由四个基本组件组成:HDFS Client、NameNode、DataNode和Secondary NameNode。
客户端(Client)负责将文件分割成多个Block,并上传到HDFS。它还提供管理和访问HDFS的命令,如启动或关闭HDFS。
NameNode作为HDFS的管理者,负责管理元数据(文件路径、文件大小、文件名、文件权限和Block切片信息)。它还管理Block的副本策略,默认设置为3个副本,并处理客户端的读写请求。
DataNode是执行实际操作的节点,负责存储实际的数据块,执行数据块的读写操作,并定期向NameNode报告Block信息。
Secondary NameNode不是NameNode的备份,不能在NameNode故障时立即接替服务,但它能分担NameNode的工作量,并在紧急情况下辅助恢复NameNode。
HDFS设计为在庞大的集群中可靠地存储超大文件。每个文件被存储为多个数据块(Block),除了最后一个,所有的数据块大小相同。为了容错,每个文件的Block都有多个副本。文件的Block大小和副本系数是可配置的。在Hadoop 2中,文件的Block大小默认设置为128M(134217728字节)。
如图所示,一个300M的a.txt文件上传到HDFS时,会被分割成128M的Block,不足128M的部分会单独存储在一个Block中。
HDFS的基本命令如下:
| 命令 | 说明 |
|---|---|
| hadoop fs -mkdir /park | 在HDFS根目录下创建park目录 |
| hadoop fs -ls / | 查看HDFS根目录下的目录 |
| hadoop fs -put /root/1.txt /park | 将Linux系统root目录下的1.txt上传到HDFS的park目录 |
| hadoop fs -get /park/jdk /home | 从HDFS的park目录下载文件到Linux的home目录 |
| hadoop fs -rm /park/文件名 | 删除HDFS的park目录下的指定文件 |
| hadoop fs -rmdir /park | 删除park目录,但前提是目录内没有文件 |
| hadoop fs -rmr /park | 删除park目录,即使目录内有文件 |
| hadoop fs -cat /park/a.txt | 查看park目录下的a.txt文件内容 |
hadoop fs -tail /park/a.txt |
查看park目录下a.txt文件末尾的数据 |
| hadoop jar xxx.jar | 执行jar包 |
HDFS的简单使用示例:假设我们的HDFS根目录是hdfs://192.168.147.128:9820,我们尝试在根目录下创建一个名为user的子目录,命令如下:
[hadoop@node01 ~]$ hadoop fs -mkdir /user
然后在Hadoop页面打开HDFS。
此时,你将看到新创建的user文件夹。
接下来,将一个大小为300M的文件上传到HDFS的user文件夹中。
然后在Hadoop页面上可以看到刚刚上传的文件。
此时,文件被分成了三个Block。
点击download按钮,即可下载文件。
- END -
# node.js
# linux
# apache
# 谷歌
# ai
# 分布式
# 接口
# 切片
# hadoop
# hdfs
# 多个
# 目录下
# 设置为
# 它还
# 文件系统
# 文件上传
# 客户端
# 都有
# 成了
# 并在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何创建自定义中间件?(Middleware代码示例)
如何在腾讯云免费申请建站?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Python文本处理实践_日志清洗解析【指导】
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
利用vue写todolist单页应用
Python3.6正式版新特性预览
nginx修改上传文件大小限制的方法
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
微信推文制作网站有哪些,怎么做微信推文,急?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何实现模型的全局作用域?(Global Scope示例)
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
JavaScript如何实现错误处理_try...catch如何捕获异常?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
PythonWeb开发入门教程_Flask快速构建Web应用
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
敲碗10年!Mac系列传将迎来「触控与联网」双革新
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何快速生成可下载的建站源码工具?
黑客如何利用漏洞与弱口令入侵网站服务器?
如何在局域网内绑定自建网站域名?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel如何升级到最新版本?(升级指南和步骤)
网站制作免费,什么网站能看正片电影?
如何撰写建站申请书?关键要点有哪些?
如何在新浪SAE免费搭建个人博客?
Laravel中的Facade(门面)到底是什么原理
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何用虚拟主机快速搭建网站?详细步骤解析
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel distinct去重查询_Laravel Eloquent去重方法
奇安信“盘古石”团队突破 iOS 26.1 提权
如何续费美橙建站之星域名及服务?
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel如何生成API文档?(Swagger/OpenAPI教程)
如何在阿里云部署织梦网站?
如何快速上传建站程序避免常见错误?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
如何彻底删除建站之星生成的Banner?
zabbix利用python脚本发送报警邮件的方法
如何正确选择百度移动适配建站域名?


hadoop fs -tail /park/a.txt