Hadoop基础

1. Hadoop基础架构


Hadoop基础_第1张图片

HDFS:分布式文件系统。

MapReduce:分布式计算框架。

YARN:资源管理系统。

Others:Hive、HBase、Pig、Mahout、Storm、Spark等。

2. HDFS-架构

HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的GFS(Google File System)文件系统论文实现的。


Hadoop基础_第2张图片

HDFS的特点:

① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。

② 运行在廉价的机器上。

③ 适合大数据的处理。

2.1 HDFS  设计原则

文件以块(block)方式存储

每个块大小远比多数文件系统来的大(预设64M) linux 4k大小

通过副本机制提高可靠度和读取吞吐量

每个区块至少分到三台DataNode上

单一 master (NameNode)来协调存储元数据(metadata)

客户端对文件没有缓存机制 (No data caching)

2.2HDFS工作原理—写操作


Hadoop基础_第3张图片

通过写过程,我们可以了解到:

①写1T文件,我们需要3T的存储,3T的网络流量带宽。

②在执行读或写的过程中,NameNode和DataNode通过HeartBeat进行保存通信,确定DataNode活着。如果发现DataNode死掉了,就将死掉的DataNode上的数据,放到其他节点去。读取时,要读其他节点去。

③挂掉一个节点,没关系,还有其他节点可以备份;甚至,挂掉某一个机架,也没关系;其他机架上,也有备份。

2.3HDFS工作原理—读操作


Hadoop基础_第4张图片

读操作流程为:

client向namenode发送读请求。

b. namenode查看Metadata信息,返回fileA的block的位置。

    block1:host2,host1,host3

    block2:host7,host8,host4

c. block的位置是有先后顺序的,先读block1,再读block2。而且block1去host2上读取;然后block2,去host7上读取;

注:上面例子中,client位于机架外,那么如果client位于机架内某个DataNode上,例如,client是host7。那么读取的时候,遵循的规律是:优先读取本机架上的数据。

2.4 HDFS-可靠性机制

文件完整性:

数据校验:使用CRC

创建文件

- 客户端为每512字节数据计算一个校验值

- DataNode存储校验值

文件访问

- 客户端从DataNode获取数据和校验值

- 如果校验失败,客户端尝试其它节点上的拷贝

元数据信息:

- FsImage、Editlog进行多份备份,当NameNode宕机后,可手动还原。

NameNode故障:

- Hadoop2.0上已经通过HA解决单点故障。

2.5 HDFS能做什么?

存储并管理PB级数据

处理非结构化数据

注重数据处理的吞吐量(latency不敏感)

应用模式为:write-once-read-many存取模式

2.6 HDFS不适合做什么?

存储小文件 (不建议使用)

大量的随机读 (不建议使用)

需要对文件的修改 (不支持)

    --hadoop2.0已支持文件内容的追加

你可能感兴趣的:(Hadoop基础)