打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
hadoop

1.定义

全称(Hadoop Distributed File System),是一种分布式文件管理系统。

2.诞生背景

如今时代数据量越来越大,一个操作系统存不下所有的数据,就需要分配到更多的操作系统管理的磁盘中,但是涉及到多个机器就难以管理维护,需要一种系统来管理多台机器上的文件

3.优缺点

高容错性、适用于大数据、可构建在廉价机器上。

不适合低延时数据访问,对大量小文件存储不友好、不支持并发写入和文件随机修改(仅支持追加)。

4.组成架构

4.1NameNode

可以理解为主要管理者:①管理HDFS的名称空间;②管理数据块映射信息;③配置副本策略;④处理client读写请求。

4.2DataNode

可以理解为工人即NameNode主要管的人:①存储实际的数据块(数据长度、校验和、时间戳);②执行数据块的读写操作。

4.3Secondary NameNode(重点)

具体可以一步这里:NameNode与Secondary NameNode

4.4Client

客户端:①文件上传时将其切分成块进行存储;②与NameNode交互,获取文件的位置信息;③与DataNode交互,读取或者写入数据;④可格式化NameNode,可对HDFS进行增删改查。

5.shell命令(实用,重点)

5.1创建文件夹

例如创建一个/emt文件夹

hadoop fs -mkdir /emt

5.2上传

5.2.1剪切本地文件到HDFS

例如从本地当前目录下的my.txt剪切到hdfs的/emt目录下

hadoop fs  -moveFromLocal  my.txt  /emt

5.2.2拷贝本地文件到HDFS

例如从本地当前目录的me.txt拷贝到hdfs的/emt目录下

hadoop fs -copyFromLocal me.txt /emt

还可以用put,与copyFromLocal效果等同

hadoop fs -put me.txt /emt

5.2.3追加一个文件到已经存在的文件末尾

例如把today.txt中内容追加到hdfs的/emt下的文件me.txt的末尾。

hadoop fs -appendToFile today.txt /emt/me.txt

5.3下载

例如把hdfs的/emt下的文件me.txt拷贝到当前目录下

hadoop fs -copyToLocal /emt/me.txt ./

也可以使用get,拷贝到当前目录下,并命名为me2.txt

hadoop fs -get /emt/me.txt ./me2.txt

5.4其他常用操作

显示/emt目录下的信息

hadoop fs -ls /emt

显示文件内容

hadoop fs -cat /emt/me.txt

创建文件夹

hadoop fs -mkdir /wy

统计文件夹的大小信息

hadoop fs -du -s -h /emt

设置HDFS中文件的副本数量(例如为10)

hadoop fs -setrep 10 /emt/me.txt

其实还有其他的指令-cp、-mv、-tail,-rm等等,其实和linux命令不能说很像,只能说一模一样,就是前面多了个hadoop fs,然后正常命令前面多了个-

6.HDFS读写流程

6.1读流程

6.2写流程

图中以上传第一个块为例,后面块同理。

6.2.1节点距离

写数据的过程,NameNode会选择距离待上传数据最近距离的DataNode接受数据。那么这个距离怎么计算呢?

总结来说就是

两个节点到达最近的公共祖先的距离总和

 比如上图中节点B、C的最近公共祖先是A,那么距离综合是2 1=3 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Hadoop】HDFS的运行原理
HDFS基本原理及数据存取实战
hdfs的基本命令行
HADOOP本地可视化界面的设计及基本实现
模拟namenode宕机:数据块损坏,该如何修复
Hadoop-HDFS(HDFS-HA)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服