最近开始从事大数据技术,看到公司采用cdn作为大数据集群工具,于是自己尝试了安装,但是在最后的角色划分时,由于对组件的一些架构和原理及服务器方面的知识欠缺,茫茫然。偶然看到这篇文章讲的很到位,推荐大家认真阅读。
Cloudera平台软件体系结构
Cloudera的软件体系结构中包含了以下模块:系统部署和管理,数据存储,资源管理,处理引擎,安全,数据管理,工具库以及访问接口。一些关键组件的角色信息:
硬件配置
集群服务器按照节点承担的任务分为管理节点和工作节点。管理节点上一般部署各组件的管理角色,工作节点一般部署有各角色的存储、容器或计算角色。根据业务类型不同,集群具体配置也有所区别:
1. 实时流处理服务集群:Hadoop实时流处理性能对节点内存和CPU有较高要求,基于Spark Streaming的流处理消息吞吐量可随着节点数量增加而线性增长。
2. 在线分析业务集群:在线分析业务一般基于Impala等MPP SQL引擎,复杂的SQL计算对内存容量有较高要求,因此需要配置128G甚至更多的内存。
3. 云存储业务集群:云存储业务主要面向海量数据和文件的存储和计算,强调单节点存储容量和成本,因此配置相对廉价的SATA硬盘,满足成本和容量需求
角色分配
小规模集群
搭建小规模集群一般是为了支撑专有业务,受限于集群的存储和处理能力,不太适合用于多业务的环境。这可以部署成一个HBase的集群;也可以是一个分析集群,包含YARN,Impala。在小规模集群中,为了最大化利用集群的存储和处理能力,节点的复用程度往往也比较高。下图是一个典型的小规模集群部署方式:
对于那些需要两个以上节点来支持HA功能的,集群中分配有一个工具节点可以承载这些角色,并同时可以部署一些其他工具角色,这些工具角色本身消耗不了多少资源:
其余节点可以部署为纯工作节点,包含:
中等规模集群
一个中等规模的集群,集群的节点数一般在20到200左右,通常的数据存储可以规划到几百TB,适用于一个中型企业的数据平台,或者大型企业的业务部门数据平台。节点的复用程度可以降低,可以按照管理节点、主节点、工具节点和工作节点来划分。
管理节点上就安装Cloudera Manager、Cloudera Management Service。
主节点上安装有个CDH服务的管理节点以及HA的组件,可以如下方式部署:
工具节点可以部署以下一些角色:
工作节点的部署和小规模类似:
大规模集群
大规模集群的数量一般会在200以上,存储容量可以是大几百的TB甚至是PB级别,适用于大型企业搭建全公司的数据平台。和中等规模的集群相比,部署的方案相差不大,主要是一些主节点可用性的增强。
HDFS JournalNode由3个增加到5个,Zookeeper Server和HBase Master也由3个增加到5个,Hive Metastore的数量有1个增加到3个。
网络拓扑
单机架部署
对于一个小规模的集群,或者一个单个rack的集群,所有的节点都连接到相同的接入层交换机。接入层交换机配置为堆叠的方式,互为冗余并增加了交换机吞吐。所有的节点两个网卡配置为主备或者负载均衡模式,分别连入两个交换机。在这种部署模式下,接入层交换机也充当了聚合层的角色。
多机架部署
在多机架的部署模式下,除了接入层交换机,还需要聚合层交换机,用于连接各接入层交换机,负责跨rack的数据存取。
实际部署样例
在机架上分配角色时,为了避免接入层交换机的故障导致集群的不可用,需要将一些高可用的角色部署到不同的接入层交换机之下(注是不同的接入层之下,而不是不同的物理rack下,很多时候,客户会将不同物理rack下的机器接入到相同的接入层交换机下。)以下是一个80个节点的物理部署样例。