二、分布式文件系统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怎么为数据库表字段添加索引以优化查询
如何挑选高效建站主机与优质域名?
Windows Hello人脸识别突然无法使用
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
node.js报错:Cannot find module 'ejs'的解决办法
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
linux写shell需要注意的问题(必看)
北京的网站制作公司有哪些,哪个视频网站最好?
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
如何在宝塔面板中修改默认建站目录?
在Oracle关闭情况下如何修改spfile的参数
如何快速选择适合个人网站的云服务器配置?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
教你用AI润色文章,让你的文字表达更专业
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何快速重置建站主机并恢复默认配置?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何在建站宝盒中设置产品搜索功能?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何实现模型的全局作用域?(Global Scope示例)
如何快速上传自定义模板至建站之星?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何在阿里云服务器自主搭建网站?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在Tomcat中配置并部署网站项目?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
利用 Google AI 进行 YouTube 视频 SEO 描述优化
在线教育网站制作平台,山西立德教育官网?
如何在阿里云完成域名注册与建站?
如何快速搭建高效可靠的建站解决方案?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何快速查询网站的真实建站时间?
原生JS实现图片轮播切换效果
如何快速搭建高效WAP手机网站吸引移动用户?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
js实现点击每个li节点,都弹出其文本值及修改
微信小程序制作网站有哪些,微信小程序需要做网站吗?
免费网站制作appp,免费制作app哪个平台好?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel怎么使用artisan命令缓存配置和视图


hadoop fs -tail /park/a.txt