HDFS?? ?YARN? ??Cloudera Management? ??Zookeeper? ??Spark
主要角色:
管理节点(Master Hosts):主要用于运行 Hadoop 的管理进程,比如 HDFS 的NameNode,YARN 的 ResourceManager。
工具节点(Utility Hosts):主要用于运行非管理进程的其他进程,比如 Cloudera Manager 和 Hive Metastore.
边缘节点(Edge Hosts):用于集群中启动作业的客户端机器,边缘节点的数量取决于工作负载的类型和数量。
工作节点(Worker Hosts):主要用于运行 DataNode 以及其他分布式进程,比如 ImpalaD。
HDFS
Apache Hadoop 分布式文件系统 (HDFS) 是 Hadoop 应用程序使用的主要存储系统。HDFS 创建多个数据块副本并将它们分布在整个群集的计算主机上,以启用可靠且极其快速的计算功能。
节点 | HDFS 节点 | HDFS 从节点 | HDFS 辅助节点 | 平衡程序 | node01 | NameNode | DataNode | | Balancer | node02 | | DataNode | SecondaryNameNode | | node03 | | DataNode | | |
NameNode 一般在主节点上,初始化安装的时候没有高可用,所以有 SecondaryNameNode 的作为一个备份,NameNode 它会将它拆分后进行分布式存储,其中的数据是分散在各个 DataNode 节点,且默认都会有 3 个副本,防止其中一台机器宕机使得数据缺失,所以一般集群有几台机器就分配到几台机器上,balancer 一般与 NameNode 搭建在一起。
NameNode:集群的管理,存储元数据(描述数据的数据)信息? ?一个
- NameNode 是 HDFS 的核心,集群的主角色。
- NameNode 仅存储管理 HDFS 的元数据,不存储实际数据或数据集,数据存储在DataNodes 中。NameNode 知道 HDFS 中给定文件的块列表及其位置,以此从块中构建文件。
- NameNode 不持久化存储每个文件中各个块所在的 DataNode 的位置信息,这些信息会在系统启动时从 DataNode 汇报中重建。
- NameNode 对于 HDFS 至关重要,当 NameNode 关闭时,HDFS / Hadoop 集群无法访问。NameNode 所在机器通常会配置有大量内存(RAM)。
DataNode:存储真实数据的节点? ?所有
- DataNode 负责将实际数据存储在 HDFS 中,是集群的从角色。
- DataNode 启动时,它将自己发布到 NameNode 并汇报自己负责持有的块列表。
- 根据 NameNode 的指令,执行块的创建、复制、删除操作。DataNode 会定期向 NameNode 发送心跳,如果 NameNode 长时间没有接受到 DataNode 发送的心跳,? 会认为该 DataNode 失效。
- 实际数据存储在 DataNode 中,故 DataNode 所在机器通常配置有大量的硬盘空间。
SecondaryNameNode:辅助 NN 的辅助节点? ?一个
SecondaryNameNode 为?NameNode 内存中的文件系统元数据创建检查点,帮助 NameNode 更好的工作。
SecondaryNameNode 的重要作用是定期通过编辑日志文件合并命名空间镜像,以防止编辑日志文件过大。SecondaryNameNode 一般要在另一台机器上运行,因为它需要占用大量的 CPU 时间与 NameNode 相同容量的内存才可以进行合并操作。它会保存合并后的命名空间镜像的副本,并在 NameNode 发生故障时启用。
Balancer 一般与 NameNode 搭建在一起? ?一个
集群平衡工具,通过运行这个程序,可以使得HDFS集群达到一个平衡的状态。
平衡指的是每个 DataNode 的利用率与整个集群的利用率的差值不超过给定的阈值。
YARN
资源管理系统是一个通用的资源模块,可以为各类应用程序进行资源管理和调度。 YARN采用了 Maser/Slave 结构,其中 Master 实现为 ResourceManager,负责整个集群的资源管理与调度; Slave 实现为 NodeManager,负责单个节点的资源管理与任务启动。
节点 | YARN 主节点 | YARN 从节点 | node01 | ResourceManager | NodeManager | node02 | | NodeManager | node03 | | NodeManager |
JobHistory 与 ResourceManager 进行通信,所以部署上一般在同一台机器上放在主节点上,而 NodeManager 分配在各个节点上
ResourceManager:YARN 集群中的主节点,可以部署多个,一般部署两个 ResourceManager 是整个YARN集群中最重要的组件之一,它的设计决定了系统的可扩展性、可用性和容错性等特点。在 YARN 中,ResourceManager 负责集群中所有资源的统一管理和分配,它接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(ApplicationMaster)。
NodeManager:YARN集群中从节点,部署多个,?一般部署数量和 DataNode 节点数相同
NodeManager 是每个节点上的资源和任务管理器,它会定时地向 ResourceManger 汇报本节点上的资源使用情况和各个 Container 的运行状态,并接收、处理来自 ApplicationMaster 的 Container 启动/停止等各种请求。
JobHistory 与 ResourceManager 一般部署在同一台机器上,放于主节点? ?一个
用户可以在浏览器查询每个 job 运行完以后的历史日志信息,比如 map 个数、reduce 个数等,JobHistory 是作为一台单独的服务器运行的。可以在 NameNode 或者 DataNode 上的任意一台启动即可。
日志聚合功能:日志信息分散在各个 NodeManager节点上,日志聚合将各个 NodeManager 节点上的日志信息聚合在一个节点上,并放在 HDFS 上,方便查看。
Cloudera Management
根据实际搭建,相当于是集群的监听器,在网页上出现的的图表就是这个监听器,可以搭建在主节点上,但若是主节点上分配的角色过多会影响其服务器的性能。
Cloudera Manager 是一个用于管理 CDH 群集的应用程序。根据实际搭建,相当于是集群的监听器,在网页上出现的的图表就是这个监听器,可以搭建在主节点上,但若是主节点上分配的角色过多会影响其服务器的性能。
- 该应用程序使安装过程自动化,将部署时间从几周缩短到几分钟;
- 提供运行主机和服务的集群范围的实时视图;
- 提供单个中央控制台,以在整个群集中实施配置更改;
- 整合了各种报告和诊断工具,以帮助优化性能和利用率。
Event Server 事件服务,收集 hadoop 相关事件并据此生成警告信息。
Host Monitor 主机检测,收集主机运行健康指标信息。
Activity Monitor 活动检测,收集 MapReduce 运行活动信息,默认情况下没有添加这个角色。
Service Monitor 服务检测,收集有关服务的运行状况和指标信息以及 YARN 和 Impala 服务中的活动信息。
Alert Publisher 警告通知,生成相关类型警告通知事件并提供 SNMP 服务供第三方收集信息。
Reports Manager 报告管理,生成用户组历史磁盘使用率、yarn资源池、HBase表的使用情况。
Zookeeper
Zookeeper Server 进程提供分布式协调管理服务,CDH 集群机器一般是奇数,最好有几台机器就部署在几台机器上。奇数个 paxos 算法可以保证半数以上投票支持,且节约资源,需要部署奇数个,且最少是三个。
Spark
基于内存进行计算的分布式计算框架。在迭代计算的场景下,数据处理过程中的数据可以存储在内存中,提供了比 MapReduce 高 10 到 100 倍的计算能力。Spark 可以使用 HDFS 作为底层存储,使用户能够快速地从 MapReduce 切换到 Spark 计算平台上去。
Spark 和 Spark2 可以分配在任意的机器上,按实际情况调整,但是 Gateway 部署在全部机器上,相当于 Spark、Spark2 机器之间的通信功能。
History Server:在运行 Spark 应用程序时,driver 会提供一个 webUI 用于展现应用程序的运行信息,但是该 webUI 随着应用程序的完成而关闭端口。通过配置 History Server,Spark 应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而 Spark history server 可以将这些运行信息装载并以 web 的方式供用户浏览。
|