分布式和集群介绍
* 分布式: 多台机器做不同的事情, 然后组成1个整体.
* 集群: 多台机器做相同的事情.
> 多台机器既可以组成 中心化模式**(主从模式)**, 也可以组成 去中心化模式**(主备模式)**
Hadoop架构图
Hadoop1.X = HDFS + MapReduce
HDFS集群
namenode: 主节点
1.管理整个HDFS集群.
2.维护和管理元数据
问:什么是元数据(metadata)?答:描述数据的数据就被称之为: 元数据例如:图书在哪层,哪个区域,哪个书架.文件的存储路径,大小,时间,权限
SecondaryNameNode: 辅助节点辅助namenode管理元数据的
datanode: 从节点1.维护和管理源文件
2.负责数据的读,写操作
3.定时向namenode报活
Map Reduce集群
JobTracker: 主节点
1.负责任务的接收
2.负责任务的调度
3.负责任务的监控.
4.负责资源的调度和分配.
TaskTracker:从节点负责接收并执行JobTracker分配过来的计算任务
JobTracker的任务过于繁重,容易宏机存在: 单点故障的问题
Hadoop2.X, 3.X = HDFS + MapReduce + Yarn
Yarn集群
ResourceManager : 主节点
1.负竟任务的接收.
2.负竟资源的调度和分配.
AppMaster进程:代码级别
1个计算任务 = 1个Application Master进程由该AppMaster进程来监控和管理该计算任务并负袁向ResourceManager 中请资源
nodemanager : 从节点
负责接收并执行ResourceManager分配过来的计算任务.
此时已经没有MapReduce集群的概念了,而是代码级别的程序,即: MR计算任务,
我们只需要用代码编写MR计算任务,然后交由Yarn调度执行即可
Hadoop集群高可用模式图解
HDFS的特点
* HDFS文件系统可存储超大文件,时效性稍差。
* HDFS具有硬件故障检测和自动快速恢复功能。
* HDFS为数据存储提供很强的扩展能力。
* HDFS存储一般为**一次写入,多次读取,只支持追加写入,不支持随机修改。**
* HDFS可在普通廉价的机器上运行。
HDFS的三大机制
心跳机制:
1.datanode会定时(3秒)向namenode发送心跳包,告诉namenode,我还活着.2.如果超过一定时间(630秒),namenode漫收到datanode的心跳包,就认为它容机了。此时就会将该datanode的块信息,交由其它活跃的datanode来存储.
3.所有的datanode会定时(6个小时),向namenode汇报一次自己完整的块信息,让namenode校验更新
负载均衡:
namenode会保证所有的datanode的资源使用率,尽量保持一致
副本机制:
可以提高容错率,默认的副本数是: 3
如果当前副本总数 > 默认的副本数(3),namenode会自动删除某个副本,如果当前副本总数 < 默认的副本数(3),namenode会自动增加该副本.
如果当前活跃的机器总数 低于 的副本数(3),例如: 默认3副本,但是现在只有2台机器活跃了,就会强制进入到 安全模式(safemode),安全模式下: 只能读,不能写.更多配置,详见Hadoop官方文档:
https://hadoop.apache. org/docs/r3.3.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xm