前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二、分布式文件系统HDFS及其简单使用

二、分布式文件系统HDFS及其简单使用

作者头像
润森
发布2022-08-18 09:07:52
3840
发布2022-08-18 09:07:52
举报
文章被收录于专栏:毛利学Python毛利学Python

在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。

HDFS

HDFS(Hadoop Distributed File System)是 Apache Hadoop 项目的一个子项目. Hadoop 非常适于存储大型数据 (比如 TB 和 PB), 其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件, 并且提供统一的访问接口。

HDFS是根据谷歌的论文:《The Google File System》进行设计的

HDFS的四个基本组件:HDFS Client、NameNode、DataNode和Secondary NameNode。

Client

Client是客户端。HDFS Client文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。

NameNode

NameNode就是 master,它是一个主管、管理者。管理 HDFS 元数据(文件路径,文件的大小,文件的名字,文件权限,文件的block切片信息)。

NameNode管理 Block 副本策略:默认 3 个副本,处理客户端读写请求。

DataNode

DataNode就是Slave。NameNode下达命令,DataNode 执行实际的操作。

DataNode存储实际的数据块,执行数据块的读/写操作。定时向namenode汇报block信息。

Secondary NameNode

SecondaryNameNode不是NameNode的备份。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。

辅助 NameNode,分担其工作量。在紧急情况下,可辅助恢复 NameNode。

副本机制

HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件。它将每个文件存储成一系列的数据块,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的。

为了容错,文件的所有block都会有副本。每个文件的数据块大小和副本系数都是可配置的。

在hadoop2 当中, 文件的 block 块大小默认是 「128M」(134217728字节)。

如上图所示,一个大小为300M的a.txt上传到HDFS中,需要进行128M的切分,不足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,如下命令所示:

代码语言:javascript
复制
[hadoop@node01 ~]$ hadoop fs -mkdir /user

然后在Hadoop页面打开HDFS。

此时的user文件夹将会看见。

下面将一个大小为300M的文件上传到HDFS的user文件夹中

然后在Hadoop页面看见刚刚上传的文件。

此时被分开了三个block。

点击download,即可下载。

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HDFS
  • Client
  • NameNode
  • DataNode
  • Secondary NameNode
  • 副本机制
  • HDFS基本命令
  • HDFS 简单使用
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档