Hadoop基础

1. Hadoop基础架构

Hadoop基础
文章图片
HDFS:分布式文件系统。
MapReduce:分布式计算框架。
YARN:资源管理系统。
Others:Hive、HBase、Pig、Mahout、Storm、Spark等。
2. HDFS-架构 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的GFS(Google File System)文件系统论文实现的。


Hadoop基础
文章图片
HDFS的特点:
① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。
② 运行在廉价的机器上。
③ 适合大数据的处理。
2.1 HDFS设计原则
文件以块(block)方式存储
每个块大小远比多数文件系统来的大(预设64M) linux 4k大小
通过副本机制提高可靠度和读取吞吐量
每个区块至少分到三台DataNode上
单一 master (NameNode)来协调存储元数据(metadata)
客户端对文件没有缓存机制 (No data caching)
2.2HDFS工作原理—写操作


Hadoop基础
文章图片
通过写过程,我们可以了解到:
①写1T文件,我们需要3T的存储,3T的网络流量带宽。
②在执行读或写的过程中,NameNode和DataNode通过HeartBeat进行保存通信,确定DataNode活着。如果发现DataNode死掉了,就将死掉的DataNode上的数据,放到其他节点去。读取时,要读其他节点去。
③挂掉一个节点,没关系,还有其他节点可以备份;甚至,挂掉某一个机架,也没关系;其他机架上,也有备份。
2.3HDFS工作原理—读操作


Hadoop基础
文章图片
读操作流程为:
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级数据
处理非结构化数据
【Hadoop基础】注重数据处理的吞吐量(latency不敏感)
应用模式为:write-once-read-many存取模式
2.6 HDFS不适合做什么?
存储小文件 (不建议使用)
大量的随机读 (不建议使用)
需要对文件的修改 (不支持)
--hadoop2.0已支持文件内容的追加

    推荐阅读