HDFS

  • hdfs分布式存储文件系统 c存储大量数据
  • mapreduce 分布式计算框架

拷贝进去究竟有什么用呢?

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据

我一个硬盘不够用了,几千块的阵列,逻辑上是一个大硬盘。
但是hdfs有点不同,分散在各个节点的数据,普通的PC机器,在任何一个节点都可以操作。实际上是很难备份的,冗余就是一种备份。我们到底的目的是进行分析计算,来指导商业行为,产生价值。

  • 避免在网上大量传输
  • 本地化数据计算

HDFS设计基础与目标

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_02

HDFS体系结构

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hadoop_03

NameNode

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_安全模式_04

比如想找一个数据:首先先找namenode 再找datenode.

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hadoop_05

Version:存放的主要是

  • nameSpaceID:
  • cTime:
  • stroage:
  • layoutVersion:

fsimage:映像文件
edits:记录每个操作

secondaryNamenode

很明显是namenode 的一个备份

DataNode

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_06

都是以linux 形式 blk的形式存储的。

读取数据流程

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_安全模式_07

图解过程

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_08


namenode-源数据-列表 -组装 并不参加数据的传输

写过程

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_09

图解

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_10

namenode-写列表-管道-第一(i)个节点

HDFS的可靠性

冗余副本策略

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hadoop_11


设置过:

dfs.repication  1

副本赋值出来分别放在机架的不同节点。
很难备份,在安全模式下,用户不能操作,直到副本满足要求为止。
当有一个新的datanode,往上报告。

机架策略

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_安全模式_12


有时候由于网络的原因会导致机架之间失去联系,HDFS的机架感知是,它可以感知是否失去了联系

core-site.xml

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_13


可以设置脚本–RackAware.py

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_14

心跳机制

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_15

安全模式

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_16


达到某种程度的安全:处于挂起状态,不能读写,直到系统恢复正常。

一定的比例:是可以设置的。

bin/hadoop dfsadmin -safemode enter

开启安全模式:这时候 拷贝或者删除某个文件 会提示处于安全模式

bin/hadoop dfsadmin -safemode leave

校验和

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_17


拷贝到系统的文件,我们可以看到是一个一个块,.meta,系统会对做(CRC)校验和,保存在.meta文件内。

回收站

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hadoop_18


hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hdfs 磁盘扩容_19

可以删除恢复以及清空。

元数据保护

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_20

快照

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hdfs 磁盘扩容_21


我可以返回到以前的版本。

HDFS文件操作

  • 命令行方式
  • API方式

列出HDFS下的文件

注意:hadoop 没有当前目录的概念,必须写全路径

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_安全模式_22

上文件传到HDFS

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_23


本地–》HDFS

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_24


放置的是二进制的信息。

将HDFS的文件下载到本地

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_数据_25

删除HDFS的文件

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_26

查看HDFS的文件内容

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_hdfs 磁盘扩容_27

查看HDFS的基本信息

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_28

怎么添加新的节点

hdfs 磁盘扩容 hdfs 磁盘空间分配算法_HDFS_29


不需要重启集群的,如果你想往这个新节点中平衡一下数据。