Hadoop,
Hadoop
common
- 为Hadoop其他组件提供公共库
HDFS(Hadoop Distributed File System)
Mapreduce
HDFS简介
- hdfs:hadoop分布式文件系统,hadoop的两大核心组件之一,主要解决分布式存储问题。
- 计算机集群基本架构
- 机架:1个机架有30-40台机器,机架与机架之间用带宽更高的几个光纤交换机来完成彼此之间的交互和连接
- 节点:机架上的每个机器称作一个节点,机架内部之间是通过光纤高速交换机进行连接
- 一个作为主节点,其余的作为从节点,主节点承担数据目录(元数据)服务,从节点完成相关的存储任务
- HDFS要实现的目标(优点)
- 兼容廉价的硬件设备。以前需要非常高端的机器,比如小型机,动辄几十万,现在普通的PC机即可构建一个集群
- 实现流数据读写,为了满足大规模数据的批量处理需求而设计的
- 支持大数据集,能以TB为单位存储
- 支持简单的文件模型,只允许追加,不允许修改
- 强大的跨平台兼容性
- HDFS的缺点
- 不适合低延迟的数据访问,实时性不高,(HBase可以满足该需求)
- 无法高效存储大量小文件
- 不支持多用户写入及任意修改文件
HDFS相关概念
-
块:整个HDFS当中的最核心的概念
- 为了分摊磁盘读写开销也就是在大量数据间分摊磁盘寻址开销
- 一个块要比普通的文件系统的块大很多,默认是64MB,可以修改为128MB
- 设计理念
- 支持面向大规模数据存储
- 降低分布式节点的寻址开销(块越大寻址开销越小,但是会影响MapReduce的计算效率)
- 简化系统设计
- 适合数据备份
-
HDFS两大组件
- 第二名称节点(Secondary NameNode,2.0版本已经不存在了)
-
对名称节点的冷备份
-
对EditLog的处理
-
- 数据节点(DataNode)
- 存储实际数据
- 第二名称节点(Secondary NameNode,2.0版本已经不存在了)
-
元数据
- 文件是什么
- 文件被分成多少块
- 每个块和文件是怎么映射的
- 每个块被存储在哪个服务器上面
-
HDFS的局限性
-
HDFS的读写流程
-
写流程
-
读流程
-
HDFS的存储原理
-
冗余数据保存的问题
- 默认冗余保存为3,伪分布式必须为1
- 能加快数据的传输速率
- 很容易检查数据错误
- 保证数据的可靠性
-
数据保存的策略问题
- 第一副本的存储策略:对于集群内部数据节点发起的请求,第一副本一般放在发起请求的数据节点上(不用通过网络再次传输,提高存储效率)。对于集群外部发起的请求,它会随机的挑选一台磁盘不太满,CPU又不太忙的节点放第一副本
- 第二副本:放在与第一副本不同机架的节点上
- 第三副本:把它放在第一副本相同机架的其他节点上
- 如果还有其他副本,也放在第一副本相同的机架上
-
数据读取
- 就行读取策略
- HDFS提供了一个API可以确定一个数据节点所属的机架ID,客户端也可以调用API获取自己所属的机架ID
-
数据恢复的问题
- 名称节点出错
- 在1.0版本中,namenode出错先暂停服务一段时间,从第二名称节点上把数据恢复回来,恢复以后再提供对外服务
- 在2.0通过热备即可
- 数据节点出错
- 数据节点在整个运行过程中都会定期的通过远程过程调用向名称节点发送心跳信息,告诉自己还活着,一旦一段时间内名称节点收不到数据节点的心跳信息,名称节点会在它的状态列表里面把它标记为不可用状态,把凡是存储在故障机上的数据重新复制分发到其他正常可用的机器上
- 不仅在出错的情况下会实现迁移备份,当出现负载不均衡的时候,也会把负载较重的机器上的数据块迁移到另外的机器上,达到负载均衡的效果
- 数据出错
- 校验码校验
- 校验码在文件被创建的时候生成,客户端每往里面写一个文件的时候,都会为这个数据块生成一个校验码,把它保存在同一个文件目录下面,下次读的时候把数据块和校验码一起读出来,然后把读出的校验码进行校验码计算,再和上次生成的校验码进行比较,如果校验码不一致,说明在存储过程中发生了错误,此时就会进行冗余备份
- 名称节点出错
MapReduce
Shuffle过程原理
- Map端的Shffle过程
Yarn
- Yarn的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离。
四大组件
- ResourceManager(RM) 单独对应一个节点,负责资源管理
- ApplicationsManager 应用程序管理器
- ResourceScheduler 资源调度器
- NodeManager(NM), 负责计算,执行MapReduce程序。
- ApplicationMaster(AM),并不是节点,而是一个单独的进程,可以设在任意节点上,包括RM节点,负责任务调度
- Container
执行流程
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。