介绍和基本原理
Cloudera发布的Cloudera的数据平台(CDP)私有云基础版为用户提供了下一代混合云架构。这篇博文概述了设计和部署包含硬件和操作系统配置的集群的最佳实践,以及有关网络和安全以及与现有企业基础架构集成的指南。
私有云基础概览
CDP Private Cloud Base 是 Cloudera Data Platform 的本地部署版本,它结合了 Cloudera Enterprise Data Hub 和 Hortonworks Data Platform Enterprise 的优点以及整个堆栈的新功能和增强功能。此统一分发版是一个可扩展且可自定义的平台,您可以在其中安全地运行多种类型的工作负载。
更多信息和文档https://docs.cloudera.com/cdp-private-cloud/latest/overview/topics/cdpdc-overview.html
主要变化总结
在我们深入研究最佳实践之前,有必要了解 CDP 相对于传统发行版提供的关键改进。
- 最好的 CDH 和 HDP,增加了分析和平台功能
- 用于CDP私有云的存储层,包括对象存储
- Cloudera SDX 可在整个平台上实现一致的安全性和治理
- 用于尚未准备好用于云的工作负载的传统数据集群
为了让客户从这些功能中获得最大的收益,Cloudera 最佳实践体现了成千上万客户部署的成功,并结合发布测试来确保客户能够成功部署他们的环境并将风险降至最低。
推荐的部署模式
开源软件生态系统是动态且快速变化的,Cloudera 支持定期功能改进、安全性和性能修复,通过汇总到常规产品版本中,Cloudera Manager 可以将其作为Parcel进行部署。建议客户与这些版本保持一致,以便从持续改进中受益。然后可以使用相邻的测试和开发环境来验证将这些更改升级到生产环境。对于那些无法直接或通过代理将 Cloudera Manager 连接到 Cloudera 软件分发站点的用户,他们应该创建存储库的离线镜像。客户还应该定期并在可能的情况下安排提交集群诊断包,并从新的支持功能(例如在https://my.cloudera.com/上的验证功能)进行重大更改时受益。
许多客户希望自动化他们的集群部署,以实现高质量的一致性和可重复性。在最近发布了Cloudera Ansible剧本提供了在这个博客中列入最佳做法,并可以从下载的模板https://github.com/cloudera-labs/cloudera-deploy
playbook 包含所有典型集群角色的模板,其中的任务使用 Cloudera Manager API 来简化构建和安全性的实现。
角色分配
一个典型的集群将由许多不同的角色组成,这些角色需要特定的内存、磁盘布局以及在某些情况下的网络连接,以优化性能和弹性。每个角色分类如下:
主节点
包含“主”角色的节点通常将管理其跨分布式集群运行的一组服务。其中包括 HDFS NameNode、YARN ResourceManager、Impala Catalog/Statestore、HBase Master Server 和 Kudu Master。至少应该有三个主节点,其中两个是 HDFS Namenodes 和 YARN Resource Managers。这三个节点都将成为 Zookeeper 和 HDFS 日志节点的法定数量,以跟踪存储在 Namenode 上的 HDFS 元数据的更改。至少需要 3 个集合才能达成多数共识。在超过 200 个节点的集群中,5 个主节点可能是合适的。
工作节点
包含为其相应服务执行大部分计算/IO 工作的角色的节点。HDFS DataNodes、YARN NodeManagers、HBase RegionServers、Impala Daemons、Kudu Tablet Servers 和 Solr Servers 是工作角色的例子。
边缘或网关节点
边缘节点充当企业网络其余部分与 CDP 私有云集群之间的网关。许多 CDP 私有云服务都带有驻留在此处的“网关角色”,以及来自企业网络的 REST API 调用和 JDBC/ODBC 类型连接的端点。通常,当您允许公司网络流量仅流向这些节点时,设置外围安全性会更简单,而不是允许直接访问 Masters 和 Workers。
摄取节点
通常,摄取节点将遵循与实用程序节点类似的模式。摄取的关键要求是 Kafka 代理角色和 Nifi 角色的许多专用磁盘。Kafka 磁盘大小和分配的磁盘数量与预期的存储和持久性设置成正比,和/或消息主题所需的吞吐量至少有 3 个Broker节点以实现弹性。
实用程序节点
实用程序节点包含允许您管理、监控和治理集群的服务。此类服务包括 Cloudera Manager (CM) 和关联的 Cloudera Management Services (CMS)、代表各种服务存储元数据的 Hive Metastore RDBMS(如果位于集群上)以及您的管理员的自定义备份脚本、部署自定义二进制文件等等。
网络
繁忙的集群会产生大量的东西向网络流量,因此建议客户启用 LACP 链路聚合到具有分布层和架顶交换机的叶脊网络。最多 1:4 的超额订阅比率,理想情况下至少有 2x10Gbps 甚至 2x25Gbps NIC,以适应未来的 CDP 私有云体验以及未来存储和计算的分离。一般来说,不支持多宿主,我们发现大多数 Hadoop 架构不应该需要它,因为它会导致大量 Hadoop 流量泄漏到错误的网络接口上,从而破坏非生产网络并影响性能。不支持 IPV6,应禁用IPV6。
对于分布在多个物理机架上的较大集群,我们建议客户利用 CDP 的机架感知功能。YARN 尝试将计算工作放置在机架内靠近数据的位置,最大限度地减少跨机架的网络流量,而 HDFS 将确保每个块都复制到一个以上的机架。
客户将在集群外围实施防火墙,用于集群内通信的网络流量和端口量非常大。许多服务(例如 Spark)将使用临时端口,以便应用程序主机角色(例如 Spark 驱动程序)可以维护对正在执行工作的执行程序的命令和控制。面向外部的服务,如 Hue 和 Hive on Tez (HS2) 角色可以更多地限于特定端口,并根据高可用性进行负载平衡。
Cloudera 支持在许可模式下使用 SELinux 运行 CDP 私有云集群,但是 Cloudera 不提供 SELinux 策略配置来启用强制模式。如果客户需要 SELinux 强制执行,他们需要自己测试和实施策略。鉴于平台的复杂性,Cloudera 建议坚持使用许可模式或完全禁用 SELinux。
请查看完整的网络和安全要求。
操作系统的磁盘布局
大多数客户会将操作系统安装在 4TB 或更多磁盘的镜像对上,这些磁盘可以使用逻辑卷管理器进行分区,以确保为日志和临时文件提供足够的存储空间。应该注意的是 /tmp 文件系统和日志记录要求可能很重要,客户应该小心确保有足够的空间可用。此外,我们还建议客户禁用透明大页面 (THP),调整后的守护程序,并尽量减少交换。
支持的文件系统是 ext3、ext4 和 XFS,通常大多数客户将 XFS v5 用于数据目录,这些通常会作为直接附加的 JBOD 磁盘挂载,以最大限度地提高 /data1、/data2 形式的 HDFS 的 I/O 性能,每个数据盘的dataN,通常为12-24个4-8Tb的磁盘,每个节点最大支持100Tb。主服务的磁盘访问模式有些不同,推荐用于 Zookeeper 和 HDFS 日志节点的专用磁盘和一些弹性存储,例如用于 HDFS NameNode 目录的 RAID 5 或 10。应该将磁盘挂载为 noatime 以提高读取性能。发布指南中描述了硬件要求的完整详细信息。
CDP 对主机名解析特别敏感,因此正确配置 DNS 服务器和完全限定主机名至关重要。时钟也必须同步。名称服务缓存守护进程可以帮助大型集群为常见名称服务请求(例如密码组和主机)提供本地缓存。
支持的基础设施服务
Hive、Atlas、Ranger、Cloudera Manager、Hue 和 Oozie 需要 RDBMS 数据库。https://docs.cloudera.com/cdp-private-cloud-base/latest/installation/topics/cdpdc-database-requirements.html部署时应考虑弹性和性能,因为性能不佳的数据库会产生不利影响对集群性能的影响。
安全集成
集群安全需要根据安全对应的博客文章,但是对于基本的安全集成,集群需要通过公司目录解析用户和组。身份验证和目录服务通常通过 kerberos 和 LDAP 的组合完成,这是有利的,因为它简化了密码和用户管理,同时与现有的企业系统(如 Active Directory)集成。
Kerberos 用作由单个主机角色组成的集群服务的主要身份验证方法,通常也用于应用程序。企业集群将使用现有的企业目录(例如 Microsoft Active Directory)来创建和管理这些 kerberos 主体。此外,Apache Knox 为支持 LDAP 和 SAML 的集群 REST API 和 UI 提供身份验证端点。
授权
Apache Ranger 提供了定义用户对资源的访问权限的关键策略框架。安全管理员可以在数据库、表、列和文件级别定义安全策略,并且可以管理基于 LDAP 的特定组、角色或个人用户的权限。还可以定义数据流和流(NiFi、Kafka 等)策略。
Apache Ranger 允许使用 sssd 或 Centrify 等工具通过企业组成员身份维护授权,以将服务和数据的访问权限与企业目录同步。然后,这些授权会定期与底层 Hive 对象同步。
https://docs.cloudera.com/cdp-private-cloud-base/latest/installation/topics/cdpdc-networking-security-requirements.html
集群服务之间的通信使用 TLS 1.2 安全性进行加密,以在线提供强大的身份验证、完整性和隐私。Cloudera Manager 通过整合称为 AutoTLS 的功能简化了 TLS 证书管理,该功能允许管理员定义和部署完全集成的公钥基础设施布局。
总结
总之,我们为主机资源的调优和配置提供了参考,以最大限度地提高集群的性能和安全性。在本系列博客文章的第 2 部分中,我们将仔细研究如何管理、监控和调整您的应用程序以从参考布局中受益。同时,您可以通过下载最新版本的 CDP 私有云基础版来开始使用。
原文作者:Niel Dunnage
原文链接:https://blog.cloudera.com/a-reference-architecture-for-the-cloudera-private-cloud-base-data-platform/