最后更新:2022-06-21 07:40:26 手机定位技术交流文章
目录
HDFS简介
HDFS特点
HDFS相关概念
1.块
2.名节点和数据节点
HDFS体系结构
1.HDFS系统结构概览
2.HDFS命名空间管理
3.通信协议
4.HDFS系统结构的限制
常见的HDFS壳式命令
分布式文件系统 (Hadoop Distributed File System, HDFS) 是 Hadoop 这个项目的两个核心组成部分之一是针对谷歌文件系统 (Google File System, GFS) 的开源实现, 研究如何存储在计算机集群上 。 HDFS 它具有处理超大数据、流体处理的优点,并且可以在廉价的商业服务器上运行。 HDFS 设计的开始是运行在一个大型、廉价的服务器集群上,因此设计认为硬件故障是正常的,这可以确保整个文件系统可用性和可靠性在某些硬件故障的情况下仍然能够得到保证。
HDFS 要实现以下目标:
● 兼容廉价的硬件设备
● 流数据读写
● 大数据集
● 简单的文件模型:写一次,读多次
强大的跨平台兼容性
HDFS 特别设计在实现上述优点的同时,也具有一定的应用局限性,主要包括以下方面:
● 不适合低延误数据访问
● 无法有效地存储大量小文件
● 不支持多用户写字和任意修改文件
HDFS 默认一个块 64MB 文件被分成多个块,块作为存储单位
该块比正常文件系统大得多,可以减少处理成本
HDFS 抽象块概念的使用可以带来下列明显的好处:
● 支持大规模文件存储 一个大的文件可以被分割成多个文件块,而不同的文件块可以被分配到不同的节点,因此文件的大小不受单一节点的存储容量限制,并且可以比网络中的任何节点的存储容量大得多
● 简化系统设计 首先,它大大简化了存储管理,因为文件块大小是固定的,所以计算一个节点能存储多少文件块是很容易的;其次,它促进了元数据的管理,元数据不需要与文件块一起存储,也可以由其他系统管理
● 适合数据备份 :每个文件块可以冗余地存储在多个节点上,大大提高了系统容忍性和可用性


名称节点:
负责管理分布式文件系统命名空间( Namespace ),保留了两个核心数据结构,即 FsImage 和 EditLog
名称节点记录数据节点的位置信息,每个块在每个文件中
名称节点是负责管理文件系统命名空间和客户端访问文件的中央服务器
名称节点的启动过程:
但是这个过程有一个问题名称节点运行期间 EditLog 不断变大的问题
如何解决?答案是: SecondaryNameNode 第二名称节点
第二名称节点 是 HDFS 用于在节点中存储名对的架构的组件 HDFS 备份元数据信息,减少重新启动名节点所需的时间。 SecondaryNameNode 一般在机器上单独运行
这里不过多介绍SecondaryNameNode的工作概述如下:
第二名节点SecondaryNameNode函数:
数据节点:
HDFS 采用了主从( Master/Slave )结构模型,一个 HDFS 该群由一个名称节点组成( NameNode )和多个数据节点( DataNode )(如图 3-4 所示)。名称节点是负责管理文件系统命名空间和客户端访问文件的中央服务器。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读 / 在名称节点统一调用下创建、删除和复制数据块的请求。 每个数据节点的数据实际上是本地存储的 Linux 文件系统中的


HDFS 仅设置一个名称节点,这大大简化了系统设计,但也带来了一些明显的限制,具体地说:
( 1 ) 命名空间的限制 :名节点存储在内存中,所以名节点能容纳的对象(文件、块)的数量由内存空间的大小限制。
( 2 ) 性能的瓶颈 分布式文件系统总吞吐量仅限于一个名称节点。
( 3 ) 隔离问题 由于该群中只有一个名称节点,只有一个名称空间,所以无法分离不同的应用程序。
( 4 ) 集群的可用性 一旦这个唯一的名称节点失败, 整个组就会变得无用.
(1)查看帮助
hdfs dfs -help
(二)查看当前目录信息
hdfs dfs -ls /
(3)上传文件
hdfs dfs -put / local path /hdfs path
(4)剪切文件
hdfs dfs -moveFromLocal a.txt /aa.txt
(5)下载文件到本地位置
hdfs dfs -get /hdfs path /local path
(6)合并下载
hdfs dfs -getmerge /hdfs path folder / merged files
(7)创建文件夹
hdfs dfs -mkdir /hello
(8)创建多层次文件夹
hdfs dfs -mkdir -p /hello/world
(9)移动hdfs文件
hdfs dfs -mv /hdfs path /hdfs path
(10)复制HDF文件
hdfs dfs -cp /hdfs path /hdfs path
(11)删除 hdfs文件
hdfs dfs -rm /aa.txt
(12)删除 hdfs文件夹
hdfs dfs -rm -r /hello
(13)查看 hdfs中的文件
hdfs dfs -cat / file
hdfs dfs -tail -f / file
检查在文件夹中有多少文件
hdfs dfs -count / folder
(15)查看hdfs的总空间
hdfs dfs -df /
hdfs dfs -df -h /
(16)修改副本数
hdfs dfs -setrep 1 /a.txt
本文由 在线网速测试 整理编辑,转载请注明出处。