hadoop hdfs(一)

hadoop分布式计算框架主要的两部分构成为hdfs分布式文件系统和map reduce 分布式系统架构。
今天主要来了解一下hadoop hdfs
1、来源
hdfs源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
2、特点
(1)、HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。

(2)、HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

(3)、它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。

(4)、hdfs具备高可用性,在Hadoop1.x版本的时候,Namenode存在着单点失效的问题。如果namenode失效了,那么所有的基于HDFS的客户端——包括MapReduce作业均无法读,写或列文件,因为namenode是唯一存储元数据与文件到数据块映射的地方。而从一个失效的namenode中恢复的步骤繁多,系统恢复时间太长,也会影响到日常的维护。

Hadoop的2.x版本在HDFS中增加了对高可用性的支持来解决单点失效的问题。

这一实现中简单说就是配置了一对活动-备用namenode。当活动namenode失效的时候,备用namenode就会接管它的任务并开始服务于来自客户端的请求,不会有任何明显中断。
3、常用命令
文件系统的基本操作:hadoop fs -help可以获取所有的命令及其解释

常用的有:

hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件
hadoop fs -copyFromLocal 从本地文件系统将一个文件复制到HDFS
hadoop fs -rm -r 删除文件或文件夹及文件夹下的文件
hadoop fs -mkdir 在hdfs中新建文件夹
HDFS的文件访问权限:只读权限(r),写入权限(w),可执行权限(x)

HDFS客户端文件读取过程如下:

应用程序通过HDFS客户端向NameNode发生远程调用请求。
NameNode收到请求之后,返回文件的块列表信息。块列表信息中包含每个block拷贝的datanode地址。
HDFS 客户端会选择离自己最近的那个拷贝所在的datanode来读取数据。
数据读取完成以后,HDFS客户端关闭与当前的datanode的链接。
如果文件没有读完,HDFS客户端会继续从NameNode获取后续的block信息,每读完一个块都需要进行校验和验证,如果读取出错,HDFS客户端会通知NameNode,重新选择一个该block拷贝的datanode读数据。

HDFS客户端文件写入过程如下:

1.应用程序通过HDFS客户端向NameNode发起远程过程调用请求。
2.NameNode检查要创建的文件是否存在以及是否有足够的权限。
3.如果检测成功,NameNode会返回一个该文件的记录,否则让客户端抛出异常。
4.HDFS客户端把文件切分为若干个packets,然后向NameNode申请新的blocks存储新增数据。
5.NameNode返回用来存储副本的数据节点列表。
6.HDFS客户端把packets中的数据写入所有的副本中。
7.最后一个节点数据写入完成以后,客户端关闭。

猜你喜欢

转载自blog.csdn.net/dscfirst/article/details/88343975
今日推荐