大数据基础

HDFS(分布式文件系统):主要用于存储数据

HDFS:分布式文件系统:专门存储超大数据文件

特点:

1.HDFS可存储超大文件每个磁盘都有默认的数据块大小,这是磁盘在对数据进行读和写时要求的最小单位,

文件系统是要构建于磁盘上的, 文件系统的也有块的逻辑概念,通常是磁盘块的整数倍,
通常文件系统为几千个字节,而磁盘块一般为 512 个字节。

HDFS 是一种文件系统,自身也有块(block)的概念,其文件块要比普通单一磁
盘上文件系统大的多,默认是 64MB。
HDFS 上的块之所以设计的如此之大,其目的是为了最小化寻址开销。
HDFS 文件的大小可以大于网络中任意一个磁盘的容量,文件的所有块并不需要存
储在一个磁盘上,因此可以利用集群上任意一个磁盘进行存储,由于具备这种分布式存
储的逻辑,所以可以存储超大的文件,通常 G、 T、 P 级别。

2) 一次写入,多次读取
一个文件经过创建、 写入和关闭之后就不需要改变,这个假设简化了数据一致性的
问题,同时提高数据访问的吞吐量。
3) 运行在普通廉价的机器上
Hadoop 的设计对硬件要求低,无需昂贵的高可用性机器上,因为在 HDFS 设计
中充分考虑到了数据的可靠性、安全性和高可用性。

2. 不适用于 HDFS 的场景:
1) 低延迟
HDFS 不适用于实时查询这种对延迟要求高的场景,例如:股票实盘。 往往应对低
延迟数据访问场景需要通过数据库访问索引的方案来解决,Hadoop 生态圈中的
Hbase 具有这种随机读、低延迟等特点。
2) 大量小文件
对于 Hadoop 系统, 小文件通常定义为远小于 HDFS 的 block size (默认 64MB)
的文件,由于每个文件都会产生各自的 MetaData 元数据,Hadoop 通过 Namenode
来存储这些信息,若小文件过多,容易导致 Namenode 存储出现瓶颈。
3) 多用户更新
为了保证并发性,HDFS 需要一次写入多次读取,目前不支持多用户写入,若要修
改,也是通过追加的方式添加到文件的末尾处, 出现太多文件需要更新的情况, Hadoop
是不支持的。
针对有多人写入数据的场景,可以考虑采用 Hbase 的方案。
4) 结构化数据
HDFS 适合存储半结构化和非结构化数据,若有严格的结构化数据存储场景,也可
以考虑采用 Hbase 的方案。
5) 数据量并不大
通常 Hadoop 适用于 TB、 PB 数据,若待处理的数据只有几十 GB 的话,不建议
使用 Hadoop,因为没有任何好处。
3. HDFS 体系架构
HDFS 是一个主/从(Master/Slave)体系架构,由于分布式存储的性质,集群拥有两
类节点 NameNode 和 DataNode。
NameNode(名字节点) :系统中通常只有一个,中心服务器的角色,管理存储和检索
多个 DataNode 的实际数据所需的所有元数据。
DataNode(数据节点) :系统中通常有多个,是文件系统中真正存储数据的地方,在
NameNode 统一调度下进行数据块的创建、删除和复制。

原文地址:https://www.cnblogs.com/shanhua-fu/p/6924009.html