HDFS
- hdfs分布式存储文件系统 c存储大量数据
- mapreduce 分布式计算框架
拷贝进去究竟有什么用呢?
我一个硬盘不够用了,几千块的阵列,逻辑上是一个大硬盘。
但是hdfs有点不同,分散在各个节点的数据,普通的PC机器,在任何一个节点都可以操作。实际上是很难备份的,冗余就是一种备份。我们到底的目的是进行分析计算,来指导商业行为,产生价值。
- 避免在网上大量传输
- 本地化数据计算
HDFS设计基础与目标
HDFS体系结构
NameNode
比如想找一个数据:首先先找namenode 再找datenode.
Version:存放的主要是
- nameSpaceID:
- cTime:
- stroage:
- layoutVersion:
fsimage:映像文件
edits:记录每个操作
secondaryNamenode
很明显是namenode 的一个备份
DataNode
都是以linux 形式 blk的形式存储的。
读取数据流程
图解过程
namenode-源数据-列表 -组装 并不参加数据的传输
写过程
图解
namenode-写列表-管道-第一(i)个节点
HDFS的可靠性
冗余副本策略
设置过:
dfs.repication 1
副本赋值出来分别放在机架的不同节点。
很难备份,在安全模式下,用户不能操作,直到副本满足要求为止。
当有一个新的datanode,往上报告。
机架策略
有时候由于网络的原因会导致机架之间失去联系,HDFS的机架感知是,它可以感知是否失去了联系
core-site.xml
可以设置脚本–RackAware.py
心跳机制
安全模式
达到某种程度的安全:处于挂起状态,不能读写,直到系统恢复正常。
一定的比例:是可以设置的。
bin/hadoop dfsadmin -safemode enter
开启安全模式:这时候 拷贝或者删除某个文件 会提示处于安全模式
bin/hadoop dfsadmin -safemode leave
校验和
拷贝到系统的文件,我们可以看到是一个一个块,.meta,系统会对做(CRC)校验和,保存在.meta文件内。
回收站
可以删除恢复以及清空。
元数据保护
快照
我可以返回到以前的版本。
HDFS文件操作
- 命令行方式
- API方式
列出HDFS下的文件
注意:hadoop 没有当前目录的概念,必须写全路径
上文件传到HDFS
本地–》HDFS
放置的是二进制的信息。
将HDFS的文件下载到本地
删除HDFS的文件
查看HDFS的文件内容
查看HDFS的基本信息
怎么添加新的节点
不需要重启集群的,如果你想往这个新节点中平衡一下数据。