共计 2082 个字符,预计需要花费 6 分钟才能阅读完成。
hdfs 的实现目标和局限
1. 实现目标
- 兼容便宜的硬件设施
- 流数据读写
- 大数据集
- 简略的文件模型
- 弱小的跨平台兼容性
2. 局限
- 不适宜低提早数据拜访
- 无奈高效存储大量小文件
- 不反对多用户写入及任意批改文件
namenode 和 datanode
secondaryNameNode 的工作状况
hdfs 数据出错与复原
1. 名称节点出错
- 名称节点保留了所有的元数据信息,
- 其中,最外围的两大数据结构是 FsImage 和 Editlog,如果这两个文件产生损坏,那么整个 HDFS 实例将生效。
- 因而,HDFS 设置了备份机制,把这些外围文件同步复制到备份服务器 SecondaryNameNode 上。
当名称节点出错时,就能够依据备份服务器 SecondaryNameNode 中的 FsImage 和 Editlog 数据进行复原。
2. 数据节点出错
- 每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告本人的状态
- 当数据节点产生故障,或者网络产生断网时,名称节点就无奈收到来自一些数据节点的心跳信息,这时,这些数据节点就会被标记为“宕机”,节点下面的所有数据都会被标记为“不可读”,名称节点不会再给它们发送任何 I / O 申请
- 这时,有可能呈现一种情景,即因为一些数据节点的不可用,会导致一些数据块的正本数量小于冗余因子
- 名称节点会定期检查这种状况,一旦发现某个数据块的正本数量小于冗余因子,就会启动数据冗余复制,为它生成新的正本
HDFS 和其它分布式文件系统的最大区别就是能够调整冗余数据的地位
3. 数据出错
- 网络传输和磁盘谬误等因素,都会造成数据谬误
- 客户端在读取到数据后,会采纳 md5 和 sha1 对数据块进行校验,以确定读取到正确的数据
- 在文件被创立时,客户端就会对每一个文件块进行信息摘录,并把这些信息写入到同一个门路的暗藏文件外面
- 当客户端读取文件的时候,会先读取该信息文件,而后,利用该信息文件对每个读取的数据块进行校验,如果校验出错,客户端就会申请到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有谬误,名称节点会定期检查并且从新复制这个块
hdfs 读写过程
1. 读过程
2. 写过程
NoSQL 数据库具备以下几个特点:
•(1)灵便的可扩展性
•(2)灵便的数据模型
•(3)与云计算严密交融
四种常见的 NOSQL
- 键值数据库
- 列族数据库
- 文档数据库
- 图形数据库
Nosql 的三大基石
- cap
- base
- 最终一致性
云数据库
在 UMP 零碎中,Zookeeper 次要施展三个作用:
• 作为全局的配置服务器
• 提供分布式锁(选出一个集群的“总管”)
• 监控所有 MySQL 实例
UMP 零碎架构
mapreduce
mapreduce 的体系结构
1)Client
- 用户编写的 MapReduce 程序通过 Client 提交到 JobTracker 端
- 用户可通过 Client 提供的一些接口查看作业运行状态
2)JobTracker
- JobTracker 负责资源监控和作业调度
- JobTracker 监控所有 TaskTracker 与 Job 的健康状况,一旦发现失败,就将相应的工作转移到其余节点
- JobTracker 会跟踪工作的执行进度、资源使用量等信息,并将这些信息通知任务调度器(TaskScheduler),而调度器会在资源呈现闲暇时,抉择适合的工作去应用这些资源
3)TaskTracker
- TaskTracker 会周期性地通过“心跳”将本节点上资源的应用状况和工作的运行进度汇报给 JobTracker,同时接管 JobTracker 发送过去的命令并执行相应的操作(如启动新工作、杀死工作等)
- TaskTracker 应用“slot”等量划分本节点上的资源量(CPU、内存等)。一个 Task 获取到一个 slot 后才有机会运行,而 Hadoop 调度器的作用就是将各个 TaskTracker 上的闲暇 slot 调配给 Task 应用。slot 分为 Map slot 和 Reduce slot 两种,别离供 MapTask 和 Reduce Task 应用
4)Task
- Task 分为 Map Task 和 Reduce Task 两种,均由 TaskTracker 启动
yarn 的体系结构
YARN 的指标就是实现“一个集群多个框架”,为什么?
- 一个企业当中同时存在各种不同的业务利用场景,须要采纳不同的计算框架
• MapReduce 实现离线批处理
• 应用 Impala 实现实时交互式查问剖析
• 应用 Storm 实现流式数据实时剖析
• 应用 Spark 实现迭代计算 - 这些产品通常来自不同的开发团队,具备各自的资源调度管理机制
为了防止不同类型利用之间相互烦扰,企业就须要把外部的服务器拆分成多个集群,别离装置运行不同的计算框架,即“一个框架一个集群” - 导致问题
• 集群资源利用率低
• 数据无奈共享
• 保护代价高 - YARN 的指标就是实现“一个集群多个框架”
• 即在一个集群上部署一个对立的资源调度治理框架 YARN,在 YARN 之上能够部署其余各种计算框架
• 由 YARN 为这些计算框架提供对立的资源调度治理服务,并且可能依据各种计算框架的负载需要,调整各自占用的资源,实现集群资源共享和资源弹性膨胀
能够实现一个集群上的不同利用负载混搭,无效进步了集群的利用率
• 不同计算框架能够共享底层存储,防止了数据集跨集群挪动
正文完