课程说明
项 | 内容 |
---|---|
课程类型 | 视屏课程 |
内容类型 | Hadoop |
课程名称 | Hadoop学习从零到一系列课程(1) |
地址 | https://edu.youkuaiyun.com/course/detail/2153 |
时长 | 80 |
费用 | 免费 |
课程目录和概要
一.分布式系统的特点
1.分布式系统对服务器硬件要求很低
- 允许发生故障,通过软件容错
- 对服务器性能不做要求,通过增加数量
- 可以使用普通廉价的刀片式服务器搭建
2.分布式系统强调横向可扩展性
- 通过增加数量提升性能
- 横向扩展性的上限空间较大,增加数量后的效率损失较小
- 可以方便的删减管理节点
3.分布式系统不允许单点失效
- 不会因为某个节点的问题导致整个集群服务不可用
- 默认每个机器都可能发生故障,通过冗余提供高可靠服务
- 通过负载均摊确保服务器负荷类似,减少服务器故障
4.分布式系统尽可能减少节点通信开销
- 分布式系统的整体瓶颈在内部网络开销(管理的成本越低,组织的效率越高)
5.分布式系统应用服务最好做成无状态的
- 避免让数据在内存中等待状态变更,减少宕机导致的数据丢失,方便恢复应用服务
二.分布式系统的CAPO理论
- Consistency 一致性:更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据要完全一致(备份数据的准确性)
- Availability 可用性:读和写操作都能成功(确保所有操作都有反馈,无论是否成功)
- Partition tolerance 分区容错性:出现网络故障导致节点间不能通信时,系统要能继续服务(不因单节点问题导致整个系统故障)
三.在分布式系统中,没有一种设计能同时满足一致性、可用性、分区容错性三个特征
- CA系统 一致性+可用性:RDBMS(关系型数据库都满足)
- CP系统 一致性+分区容错性:MongoDB、HBase、Redis
- AP系统 可用性+分区容错性:CouchDB、Cassandra、DynamoDB、Riak
- 分布式系统,一定要能满足分区容错性
四.Hadoop系统整体架构
学习心得
这节课主要讲的是分布式系统的原理。当前大数据有这样的发展势头,分布式存储和计算系统是基础。如果没有这样廉价易用的系统,大数据没法广泛应用,因为大多数公司支持不了大量数据的存储和计算的硬件开支。
我觉得公司的组织形式就是一个分布式系统,管理层就是分布式系统的协调服务(zookeeper)和资源管理(YARN),公司的办公场地就是分布式存储系统(HDFS),公司的员工就是计算系统(MapReduce),HIve、Pig、Spark等就是公司提供的产品服务。
当公司业务多时,可以通过招募新的员工增加的处理能力,租赁新的办公场地增加办公空间。某个部门事务过多,还能内部协调重新分工,尽量做到个人工作均衡。某个员工甚至某个部门节点除了问题,不会导致整个公司的问题,及时关闭节点,重新划分工作,一切又能照常运行。人类社会的组织,真是最好的分布式系统。