资料来自华为HCIA培训材料及百度,督促自己努力备考,考试费早日回本

考一、HDFS(高度容错,部署在低成本硬件)考点:
1、系统架构:包含NameNode和DataNode。
NameNode:维护文件系统的命名空间,对文件系统命名空间或其属性的任何更改均由NameNode记录。
DataNode:(1)HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向NameNode定期发送自己所存储的块的列表。(2)每个节点的数据会保存在各自节点的本地Linux文件系统中。
(3)数据以块的形式存储,默认128M,数据存储执行三副本机制(考点:读写顺序及距离问题,见下)。
HDFS中只设置了一个NameNode,由此带来的局限性如下:
| 命名空间的限制 | 名称节点保存在内存中,因此名称节点能够容纳的对象(目录、文件和块)的个数会受到内存空间大小的限制 |
| 性能的瓶颈 | 整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量 |
| 隔离问题 | 由于集群中只有一个NameNode,一个命名空间,因此无法对不同应用程序进行隔离 |
| 集群的可用性 | 一旦唯一的名称节点发生故障,将导致整个集群不可用 |
2、关键特性:
高可用性HA。
元素持久化:涉及FsImage、EditLog,关注持久化流程。
联邦机制(2.X):支持NameNode/NameSpace的水平扩展,同时实现不同应用程序和用户的命名空间卷级别的隔离性。每个DataNode可以存储集群中所有块池的数据块,不与其他块池交互,当其中一个NameNode出现故障时,并不会影响集群中的数据节点服务于其他的NameNode。(元数据独立,从节点共用)
例题:联邦机制下,各NameNode间元数据是不共享的。(对)
数据副本机制:本机距离是0;同一机架,距离设置为2;不同机架设置为4。写数据的副本顺序:第一个副本遵循优先本机(本机没有就同机架),第二个副本考虑不同机架最近的距离,第三个副本考虑同机架最远的距离。读数据副本的顺序遵循:优先本机,再来同机架,最后不同机架。
3、HDFS数据完整性保障:(1)重建失效数据盘的副本数据;(2)集群数据均衡,保证数据在各个DataNode上的分布是平均的;(3)元数据可靠性保证;(4)安全模式。
4、访问方式:提供Java API、HTTP、Shell方式访问HDFS数据。
5、补充:HDFS 中 NameNode 的主备仲裁,由 ZooKeeper Failover Controller 组件控制。
6、HDFS具备流数据读写、大数据集、强大的跨平台兼容性,不适用于大量小文件的存储,不适用于低延迟的数据访问,不适合随机写入;也不支持多用户写入和任意修改文件等。
考二、Zookeeper
1、选举机制与容灾能力计算:2n和2n-1台服务器的容灾能力是一样的,因此建议奇数部署。
n个服务器,节点选票大于一半才能成为leader:
(1) 当n为奇数时,n=2x-1,则成为leader的节点需要获得x票,容灾能力x-1;
(2) 当n为偶数时,n=2x,则成为leader的节点需获得x+1票,容灾能力为x-1;
结论:2x和2x-1的容灾能力是一样的,因此建议奇数部署,但是从吞吐量上来说,偶数部署的性能优于奇数部署。
例题:当 ZooKeeper 集群的节点数为 5 节点时,集群的容灾能力和 6 节点是等价的。
节点数为5时,leader为节点3,容灾能力为2。
节点数为6时,leader为节点4,容灾能力为2。
2、主要用于解决分布式应用中遇到的数据管理问题,提高分布式、高可用性的协同服务能力。ZooKeeper 可以为 MRS 中以下组件提供分布式管理支持:Hive、 Flink、HBase、 Spark。
3、安全模式下ZK依赖于Kerberos和LdapServer进行安全认证,非安全模式下不依赖于Kerberos和LdapServer。
4、关键特性:
特性 | 解释 |
| 最终一致性 | 无论哪个Server,对外展示的均是同一个视图 |
| 实时性 | 保证客户端将在一个时间间隔内获得服务器的更新信息,或者服务器失效的信息 |
| 可靠性 | 一条消息被一个Server接收,它将被所有Server接收 |
| 等待无关性 | 每个client都有效等待,快慢不影响 |
| 原子性 | 更新只有成功或者失败,没有中间状态 |
| 顺序一致性 | 客户端所发送的更新会按照他们被发送的顺序进行进行应用 |




