首页 > 其他分享 >CDH详解(史上最全)

CDH详解(史上最全)

时间:2024-06-12 15:31:07浏览次数:14  
标签:Cloudera Java 最全 CDH Hadoop 详解 GB 磁盘

工作记录

知识研究

CDH概览

CDH(Cloudera Distribution Including Apache Hadoop)是由Cloudera公司提供的一个集成了Apache Hadoop以及相关生态系统的发行版本。CDH是一个大数据平台,简化和加速了大数据处理分析的部署和管理。CDH提供Hadoop的核心元素-可伸缩存储和分布式计算-以及基于web的用户界面和重要的企业功能。CDH是Apache许可的开放源码,是唯一提供统一批处理、交互式SQL和交互式搜索以及基于角色的访问控制的Hadoop解决方案。

Hadoop是一种分布式系统基础架构,是大数据处理和数据存储的主要技术之一。它具有高效可靠、弹性伸缩等特点,包括三个核心组件:HDFS、MapReduce 和 YARN,在大数据处理、数据挖掘、机器学习等领域得到了广泛的应用。

Hadoop的特点:

优点

1、支持超大文件。HDFS存储的文件可以支持TB和PB级别的数据。

2、检测和快速应对硬件故障。数据备份机制,NameNode通过心跳机制来检测DataNode是否还存在。

3、高扩展性。可建构在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,NameNode也可以感知,将数据分发和备份到相应的节点上。

4、成熟的生态圈。借助开源的力量,围绕Hadoop衍生的一些小工具

缺点:

1、不能做到低延迟。高数据吞吐量做了优化,牺牲了获取数据的延迟。

2、不适合大量的小文件存储。

3、文件修改效率低。HDFS适合一次写入,多次读取的场景。

Hadoop 的核心架构包括三个组件:

1. HDFS:HDFS 是 Hadoop 的分布式文件系统,能够将大文件划分为多个块并存储在多个节点上,实现数据的备份和容错,具有高度容错性和高吞吐量等特点,适合在廉价的机器上部署;

2. MapReduce:MapReduce 是一种分布式编程模型,能够将大规模数据进行并行处理,适用于大规模数据分析和处理;

3. 3. YARN:YARN 是 Hadoop 的资源管理器,可以动态地分配资源和管理任务,提高计算集群的利用率和效率

CDH特性

灵活性:存储任何类型的数据并使用各种不同的计算框架进行操作,包括批处理、交互式SQL、免费文本搜索、机器学习和统计计算。

集成:能够快速集成和运行一个完整的Hadoop平台,适用于各种不同的硬件和软件。

安全:处理和控制敏感数据。

扩展性:能够部署多种应用,并扩展和扩充它们以满足你的需求。 高可用性:可以放心地用于关键的商业任务。

兼容性:兼容现有的基础设施和资源

CDH功能

CDH是一个强大的商业版数据中心管理工具,提供了以下功能:

1.提供了各种能够快速稳定运行的数据计算框架,如Spark;

2.使用Apache Impala做为对HDFS、HBase的高性能SQL查询引擎;

3.使用Hive数据仓库工具帮助用户分析数据;

4.提供CM安装HBase分布式列式NoSQL数据库;

5.包含原生的Hadoop搜索引擎以及Cloudera Navigator Optimizer去对Hadoop上的计算任务进行一个可视化的协调优化,提高运行效率;

6.提供的各种软件能让用户在一个可视化的UI界面中方便地管理、配置和监控Hadoop以及其它所有相关组件,并有一定的容错容灾处理;

7.提供了基于角色的访问控制安全管理。

CDH和原生Hadoop区别

原生Hadoop的问题

1.版本管理过于混乱

2.部署过程较为繁琐,升级难度较大

3.兼容性差

4.安全性低

CDH优点

1. 提供基于web的用户界面,操作方便

2、集成的组件丰富,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop

3、搭建容易,运维比原生hadoop方便。简化了大数据平台的安装和使用难度

4、版本划分清晰、更新速度快、文档清晰、支持多种安装方式、支持Kerberos安全认证等

CDH 组件

CDH组件见下图

CDH作为一套开源的大数据处理平台,包含了许多不同的组件,每个组件都有各自的功能和特点。下面大概介绍下各个组件的功能和用途。

Hadoop HDFS

Hadoop HDFS(Hadoop Distributed File System)是CDH中的一个核心组件,它是一个可扩展的分布式文件系统,用于存储大规模的数据文件。HDFS通过将文件切分为多个块,并将这些块分布在不同的计算节点上,实现了高可用性和高性能的文件存储。

Hadoop YARN

Hadoop YARN(Yet Another Resource Negotiator)是CDH中的另一个核心组件,它是一个资源管理器,负责对集群中的计算资源进行统一管理和调度。YARN可以根据应用程序的需求,动态分配计算资源,实现任务的高效执行。

Hadoop MapReduce

Hadoop MapReduce 是CDH中用于分布式计算的编程模型和框架,它将大规模的数据切分为多个小任务,并在集群中的计算节点上并行执行这些任务。MapReduce可以实现大规模数据的处理和分析,支持复杂的数据转换和计算操作。

HBase

HBase是CDH的一个分布式数据库,它基于Hadoop HDFS存储数据,并提高性能的随机读写能力。HBase适用于需要快速访问和查询大规模数据的场景,如日志分析、推荐系统等

Hive

Hive是CDH中的一个数据仓库工具,它提供了类似于SQL的查询语言(HiveSQL),它可以将结构化的数据映射到Hadoop集群中的文件,并支持高性能的数据查询和分析。Hive可以方便地进行数据的ETL(Extract、Transform、Load)操作,适用于数据分析和报表生成等任务

Impala

Impala是CDH中的一个交互式查询引擎,它可以直接访问存储在Hadoop HDFS和HBase中的数据,并提供类似于SQL的查询语言。Impala通过在内存中执行查询操作,实现了低延迟的数据查询和分析,适用于实时数据处理和探索性数据分析等场景。

Sqoop

Sqoop是CDH中的数据导入导出工具,它可以将关系型数据库(如Mysql、Oracle等)中的数据导入到Hadoop集群中的HDFS或HBase中,也可以将Hadoop集群中的数据导出到关系型数据库中。Sqoop支持自动化的数据传输和转换,方便进行数据的迁移和集成。

Flume

Flume是CDH中的一个日志收集和传输工具,它可以实时地将分布在不同计算节点上的日志数据收集到中央存储(如HDFS)中。Flume支持灵活的数据流管道配置,可以根据需求进行数据过滤、转换和路由操作,适用于大规模分布式系统的日志管理。

ZooKeeper

ZooKeeper是CDH中的一个分布式协调服务,它可以实现分布式系统中的数据一致性和协同操作。ZooKeeper提供了高可用性和高性能的数据存储和访问接口,可以用于分布式锁、配置管理、命名服务等场景。

Spark

Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。最早Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。是一种基于内存的分布式并行计算框架,不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍

Pig(ad-hoc脚本)

由yahoo开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具。Pig定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

Oozie

Oozie是CDH中的一个工作流调度和协调工具,它可以将多个Hadoop任务组织成一个工作流,并按照指定的时间和依赖关系进行调度执行。Oozie支持复杂的任务依赖关系和条件触发,可以实现数据处理和分析的自动化流程控制。

CM(Cloudera Manager)

CDH分为Cloudera Manager管理平台(CM)和CDH parcel(parcel包含各种组件的安装包),需要先安装CM,再安装parcel

CM(Cloudera Manager)提供了一个管理和监控Hadoop等大数据服务的web界面,能让我们方便安装大数据生态圈的大部分服务。

核心组件CM

CM(Cloudera Manager),管理CDH端到端的应用。CM通过对CDH集群的各部分提供精细的可视化和控制,建立了企业级部署的标准,增强了操作人员的能力以提升性能、提升服务质量、提高合规性、降低管理成本,其具有以下功能:

1、 管理:对集群进行管理,例如添加、删除节点等操作。

2、 监控:监控集群的健康情况,对设置的各种指标和系统的具体运行情况进行全面的监控。

3、 诊断:对集群出现的各种问题进行诊断,并且给出建议和解决方案。

4、 集成:多组件可以进行版本兼容间的整合。

其核心是管理服务器Cloudera Manager Server,该服务器承载管理控制台的Web服务器和应用程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集。

Cloudera Manager Server与以下几个组件一起工作:

Agent(代理):安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。

Management Service:由一组执行各种监控,警报和报告功能角色的服务。

Database:存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。

Cloudera Repository:软件由Cloudera 管理分布存储库。

Clients:是用于与服务器进行交互的接口。

Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理。

API :与开发人员创建自定义的Cloudera Manager应用程序的API。

CM功能

1. 状态管理

Cloudera Manager Server维护了集群的各种状态。状态可以分为两类:模块和运行时,两者存储于Cloudera Manager Server的数据库中。

模块中包含集群、主机、服务、配置。运行时包含进程、命令。

2. 配置管理

CM在多个层面定义了配置,如:

服务层面:可定义整个服务实例层面的配置,如HDFS服务的默认副本因子。

角色组层面:可定义某个角色组的配置,如DataNode的处理线程数量,可根据DataNodes的不同分组进行不同的配置。

角色层面:可覆盖从角色组层面继承的配置。这种配置需要谨慎使用,因为会造成角色组中的配置分歧。如因为排错需求临时启用某个角色实例的DEBUG日志。

主机层面:根据监控、软件管理、资源管理的不同有不同的配置。

CM自身也有很多与管理操作相关的配置

3. 进程管理

非CM管理的集群使用脚本进行角色进程的启动,但在CM管理的集群中这类脚本不起作用。

CM管理的集群中,只能使用CM进行角色进程的启停。CM使用开源的进程管理工具名为supervisord,其会启动进程、重定向日志、通知进程失 败、为进程设置正确的用户ID等等。CM支持自动重启一个崩溃的进程。 如果一个进程在启动后频繁崩溃,还会被打上非健康标记。

停止CMS和CM代理不会使正在运行的进程被中止。

4. 软件包管理

CM支持两种软件分发格式:packages和parcels。

packages是一种二进制分发格式,包含编译的代码和元数据如包 述、版本、依赖项。包管理系统评估此元数据以允许包搜索、执行升级、确保包的所有依赖关系得到满足。CM使用本地操作系统支持的包管理程序。

parcel也是一种二进制分发格式,包含CM需要使用的附加元数据。其与package的区别有:可安装同一个parcel的多个版本,并激活其中一个; parcel可安装到任何路径;通过parcel安装,CM会自动下载并激活和每 个节点操作系统版本匹配的parcel包,解决某些操作系统版本不一致问题。

5. 主机管理

CM 供了多种功能以管理Hadoop集群的主机。第一次运行CM管理员控制台时,可搜索主机并添加到集群,一旦选中了主机就可以为其分配CDH 角色。CM会在主机上自动部署作为集群托管节点的所有软件:JDK,CM 代理,CDH,Impala,Solr等等。

服务部署并运行后,管理员控制台中的“Hosts”区域显示集群中托管 主机的总体状态。 供的信息包括主机上的CDH版本、主机所属的集群、 运行在主机上的角色的数量。Cloudera管理服务中的主机监控角色执行 健康检查并收集主机的统计信息,以允许你监控主机的健康和性能。

6. 资源管理

CM允许使用两种资源管理方式:

静态资源池:使用Linux cgroups在多个服务间静态地进行资源隔离,如 HBase、Impala、YARN分别使用一定百分比的资源。静态资源池默认不启 用。

动态资源池:用于某些服务内部的资源管理,如YARN的各种资源调度器; Impala也可对不同池中的查询动态分配资源。

7. 用户管理

访问CM通过用户账户进行控制。用户账户标识如何对用户进行身份验证,并确定授予用户的权限。

CM 供了多种用户认证机制。可以配置CM使用CM数据库认证用户,或使用某种外部认证服务。外部认证服务可以是LDAP服务器,或者指定的其 他服务。CM还支持使用安全断言标记语言(SAML)来实现单点登录。

8. 安全管理

认证:认证是指用户或服务证明其有访问某种系统资源的权限。Cloudera集群支持操作系统账号认证、LDAP、Kerberos等认证方式。LDAP和Kerberos并不是互斥的,很多时候可以一起使用。

授权:授权关注谁可以存取或控制指定的资源或服务。CDH目前支持以 下几种权限控制:传统的POSIX形式的目录和文件权限控制;HDFS扩展 的ACL细粒度权限控制;HBase可对用户和组设置各种操作的ACL;使用Apache Sentry进行基于角色的权限控制。

加密:集群不同层面存储和传输的数据支持不同的加密方式。

9. 管理服务

Cloudera Management Service实现了多种管理特性,包括活动监控、主机监控、服务监控、事件服务、告警发布、报表管理等。

CDH版本

目前官网上有cdh6版本和cdh5版本

Cdh6版本

地址:

https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html

Cdh5版本

地址:

https://docs.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh_download.html

CDH6相对于CDH5是一次各个组件的大版本升级,新增了很多功能,同时各个组件也修复了大量已知的问题和安全漏洞。比如HDFS的纠删码用于冷数据降低存储成本又保证了数据的可用性,NameNode和YARN的联邦解决大规模集群的性能瓶颈问题,YARN引入GPU支持等。长远来看,从Hadoop2升级到Hadoop3或者从CDH5升级到CDH6是必须的,Cloudera的开发重心也转移到Hadoop3或CDH6上,而CDH5则主要以维护和修复bug为主。

下面是CDH5最新版本和CDH6最新版本的各个组件的支持情况

CDH6要求和支持的版本

在企业数据中心中,Cloudera Manager 和 CDH 与多个产品(如 Apache Accumulo、Apache Impala、Hue、Cloudera Search 和 Cloudera Navigator)进行交互。必须考虑 Cloudera Manager 和 CDH 不同发行版本之间的兼容性,尤其是在执行安装/升级过程时。

下面是CDH6的要求和支持的版本信息

硬件要求

Cloudera 管理器

Cloudera Manager服务器存储要求

组件存储笔记
分区托管 /usr1 GB
分区托管 /var5 GB 至 1 TB根据管理的节点数进行扩展。见下表。
分区托管 /opt最低 15 GB使用量随着下载的包裹数量的增加而增长。
Cloudera Manager 数据库服务器5 GB如果 Cloudera Manager 数据库与 Service Monitor 和 Host Monitor 共享,则需要更多的存储空间来 满足这些组件的要求。

基于主机的Cloudera Manager服务器要求

在较小的集群上,Cloudera Manager 服务器和数据库可以共享一个主机。在较大的集群上,它们必须在单独的专用集群上运行主机

集群主机数数据库主机配置堆大小逻辑处理器Cloudera Manager 服务器 /var 目录
非常小 (≤10)共享2 GB45 千兆字节
小 (≤20)共享4 GB6最低 20 GB
中 (≤200)专用8 GB6最低 200 GB
大 (≤500)专用10 GB8最低 500 GB
超大 (>500)专用16GB16最低 1 TB

具有HDFS、YARN或Impala的集群

对于具有辅助角色的唯一服务是 HDFS、YARN 或 Impala 的集群,请使用此表中的建议。

受监控实体数主机数量所需的 Java 堆大小建议的非 Java 堆大小
0-2,0000-1001 GB6 GB
2,000-4,000100-2001.5 GB6 GB
4,000-8,000200-4001.5 GB12 GB
8,000-16,000400-8002.5 GB12 GB
16,000-20,000800-1,0003.5 GB12 GB

使用HBase,Solr、Kafka或Kudu的集群

在群集中部署 HBase、Solr、Kafka 或 Kudu 等服务时,请使用这些建议。这些服务通常具有大量受监视的实体。

受监控实体数主机数量所需的 Java 堆大小建议的非 Java 堆大小
0-30,0000-1002 GB12 GB
30,000-60,000100-2003 GB12 GB
60,000-120,000200-4003.5 GB12 GB
120,000-240,000400-8008 GB20 GB

主监视器

服务监视器可能是资源最密集的服务,需要特别注意。服务监视器要求基于受监视的数量实体。若要查看受监视实体的数量可以打开 Cloudera Manager 管理控制台,然后单击 Cloudera Management >集群 服务,查找 Cloudera Management Service Monitored Entities 图表,在此图标中查看。确保至少有 25 GB 的磁盘空间可用于 Host Monitor、Service Monitor、Reports Manager 和 Events Server 数据库。

主机数量受监控实体数堆大小非 Java 堆大小
0-200<6k1 GB2 GB
200-8006k-24k2 GB6 GB
800-100024k-30k3 GB6 GB

报表管理器

报告管理器定期从 NameNode 获取 fsimage。它读取 fsimage 并为其创建一个 Lucene 索引。为了提高索引性能,Cloudera 建议置备尽可能强大的主机,并将 SSD 磁盘专用于报告管理器。

组件Java 堆中央处理器磁盘
报表管理器FSimage大小的3-4倍。最小:8核,推荐:16 核(32 核,启用超线程1个专用磁盘,其大小至少是 fsImage 的 20 倍。Cloudera 强烈建议使用 SSD 磁盘。

代理主机

元件存储笔记
分区托管 /opt最低 15 GB随着新宗地下载到群集主机,使用量也会增加。
/var/log每个角色 2 GB主机上运行的每个角色至少需要 2 GB 的磁盘空间。

事件服务器

CPURAM存储
1 核256M5 GB 用于事件数据库,事件服务器索引目录为 20 GB。此目录的位置由事件服务器索引目录事件服务器配置设置

警报发布者

CPURAM存储
1 核1G至少 1 个磁盘用于日志文件

Cloudera 导航器

元件Java 堆/内存CPU磁盘
Navigator 审核服务器最低:2-3 GB 的 Java 堆使用“审计服务器的 Java 堆大小(以字节为单位)”配置属性配置此值。最低:1 核Navigator Audit Server 使用的数据库必须能够容纳数百 GB(或每 数千万行 天)。数据库大小可能达到 TB。理想情况下,数据库不应与其他服务共享,因为审计插入率可能会使数据库服务器不堪重负,从而使使用同一数据库的其他服务减少 响应。
Navigator 元数据服务器最低:10 GB 的 Java 堆推荐:20 GB Java 堆最低:1 核最低:50 GB推荐:100-200 GB注意:元数据服务器存储的数据会无限增长,除非您运行清除功能。如果您尚未将清除功能设置为按计划的时间间隔运行,建议 运行清除功能以回收磁盘空间并控制数据增长(以及相应的内存要求)。

Cloudera 数据科学工作台

硬件组件要求笔记
CPU16+ CPU (vCPU) 核心每个会话至少分配 1 个 CPU 内核。1 个 CPU 内核通常足以满足轻量级工作负载的需求。
Memory32 GB 内存作为一般准则,Cloudera 建议 RAM 在 60GB 到 256GB 之间的节点,分配少于 2 GB 的 RAM 可能会导致许多应用程序出现内存不足错误。
磁盘根卷:100 GB应用程序块设备或挂载点(仅限主主机):1 TBDocker 镜像块设备:1 TB强烈建议将 SSD 用于应用程序数据存储

CDH

Flume

组件Java HeapCPU磁盘
Flume最低:1 GB最大 4 GBJava 堆大小应大于最大通道容量使用 Java Heap Size of Agent (Bytes Flume) 配置属性设置此值。使用以下公式计算内核数:(源数 + 汇数 ) / 2建议将多个磁盘用于文件通道,无论是 JBOD 设置还是 RAID10(由于可靠性更高,首选)。

HDFS

组件MemoryCPU磁盘
J JournalNode节点11GB(默认)使用 JournalNode 的 Java 堆大小(以字节为单位)HDFS 配置属性设置此值。最少 1 个核心11个专用磁盘
NameNode最小值:1 GB(用于概念验证部署)每增加 1000000 个blocks,再增加1GB快照和加密可能会增加所需的堆内存。使用 NameNode 的 Java 堆大小(以字节为单位)HDFS 配置属性设置此值。至少 4 个专用内核;对于较大的群集,可能需要更多至少 2 个用于元数据的专用磁盘1 个用于日志文件的专用磁盘(此磁盘可能与操作系统共享。最大磁盘数:4
DataNode最低:4 GB增加内存以获得更高的副本数或每个 DataNode 的更多块数。使用 DataNode 的 Java 堆大小(以字节为单位)HDFS 配置属性设置此值。最小值:4 个内核。为高度活跃的集群添加更多核心。最小值:4最大值:24Cloudera 不支持大于 8 TB 的驱动器。

HBase

组件Java HeapCPU磁盘
Master100-10,000 个区域:4 GB10,000 个或更多区域,具有 200 个或更多区域服务器:8 GB10,000 个或更多区域,具有 300 个或更多区域服务器:12 GB使用 HBase Master 的 Java 堆大小(以字节为单位)HBase 配置属性设置此值。至少 4 个专用内核。您可以为更大的集群添加更多内核,在使用复制时或批量加载时。1 1个用于本地日志的磁盘,可以与操作系统和/或其他 Hadoop 日志共享
Region Server最低:8 GB中等规模生产:16 GB大于 16 GB 的堆需要特殊的垃圾回收优化。使用 HBase RegionServer 的 Java 堆大小(以字节为单位)HBase 配置属性设置此值。最少:4 个专用内核每个 HDFS DataNode 有 4 个或更多心轴1 个磁盘用于本地日志(此磁盘可以与操作系统和/或其他 Hadoop 日志共享)
Thrift服务器11GB - 4 GB使用 HBase Thrift Server 的 Java 堆大小(以字节为单位)HBase 配置属性设置此值。至少 2 个专用内核。1 个本地日志磁盘,可以与操作系统和其他 Hadoop 日志共享。

Hive

组件Java 堆CPU磁盘
HiveServer 2单连接44GB至少 4 个专用内核最少 1 个磁盘以下情况需要此磁盘:HiveServer2 日志文件stdout和输出文件stderr配置文件操作日志存储在目录下,可配置operation_logs_dir目录下的本地映射任务可能创建的任何临时文件/tmp
2-10 个连接4 4-6 GB
1 11-20个连接6-12 GB
21-40个连接1 12-16 GB
40-80个连1 16-24 GB
使用 HiveServer2 的 Java 堆大小(以字节为单位)Hive 配置属性设置此值。
Hive元存储单连接4 4GB至少 4 个专用内核最少 1 个磁盘此磁盘是必需的,以便 Hive 元存储可以存储以下项目:日志配置文件如果数据库服务器也托管在同一节点上,则用于存储元数据的后端数据库
2-10 个连接4 4-10GB
1 11-20个连接10-12 GB
21-40个连接1 12-16 GB
40-80个连接1 16-24 GB
Beeline CLI最低:2 GB

Spark Executor 节点上的Hive

元件MemoryCPU磁盘
Hive-on-Spark最低:16 GB建议:32 GB(用于较大的数据大小)单个执行程序堆不应大于 16 GB,因此可以有更多 RAM 的计算机可以使用多个执行程序。最小:4 核建议:8 个内核,用于更大的数据大小磁盘空间要求由 Spark 溢出的暂存空间要求驱动。

HSM KMS

元件MemoryCPU磁盘
Navigator HSM KMS16 GB 内存最低配置:2 GHz 64 位四核40 GB,使用中等到高性能驱动器。

HUE

元件MemoryCPU磁盘
hue 服务器最低:4 GB最大 10 GB如果集群使用 Hue 负载平衡器,请添加额外的内存最低要求:运行 Django 的 1 个核心当 Hue 配置为高可用性时,请添加其他内核最小值:数据库为 10 GB,根据群集大小和工作负载按比例增长。当 Hue 配置为高可用性时,需要添加临时空间

Impala

Impala 的大小调整要求可能会因使用 Impala 的工作负载的大小和类型而有很大差异

元件本机内存JVM 堆CPU磁盘
Impala 守护进程使用 Impala Daemon Memory Limit 配置属性设置此值。最低:32 GB推荐:128 GB使用 Impala 守护程序的 Java 堆大小(以字节为单位)配置属性来设置此值 协调员 Impala Daemons。最低:4 GB推荐:8 GB最小值:4推荐:16 个以上CPU指令集:AVX2最小:1 个磁盘推荐:8 个以上
Catalog服务器使用目录服务器的 Java 堆大小(以字节为单位)配置属性设置此值。最低:4 GB推荐:8 GB最小值:4推荐:16 个以上CPU指令集:AVX2最低和推荐:1 个磁盘

Kafka

Kafka 需要相当少量的资源,尤其是在进行一些配置调整时。默认情况下,Kafka 可以在低至 1 个内核和 1GB 内存上运行,并具有存储 根据数据保留要求进行扩展。

CPU 很少成为瓶颈,因为 Kafka 的 I/O 量很大,但具有足够线程的中等大小的 CPU 对于处理并发连接和后台仍然很重要 任务。

组网要求:千兆以太网或 10 千兆以太网。避免跨多个数据中心的集群。

元件内存/Java 堆CPU磁盘
BrokerRAM: 64 GB推荐的 Java 堆:4 GB使用 Broker Kafka 的 Java 堆大小配置属性设置此值。。1 12- 24 核1 HDD 用于操作系统1 个用于 Zookeeper dataLogDir 的硬盘10- HDD,使用 Raid 10,用于 Kafka 数据
MirrorMaker1 1GB 堆使用 MirrorMaker Kafka 的 Java 堆大小配置属性设置此值。每 3-4 个流 1 个CPUMirrorMaker 实例上不需要磁盘空间。目标代理应具有足够的磁盘空间来存储要复制的主题。

Key Trustee Server

元件MemoryCPU磁盘
Key Trustee Server8GB1 1GHz 64 位四核20GB,使用中等到高性能驱动器

Key Trustee KMS

元件MemoryCPU磁盘
Key Trustee KMS16 GB2GHz 64 位四核40 GB,使用中等到高性能驱动器

Kudu

元件MemoryCPU磁盘
Tablet Server最低:4 GB推荐:10 GB可能需要额外的硬件,具体取决于群集中运行的工作负载。kudu 目前需要支SSSE3 和 SSE4.2 指令集的 CPU。如果要在 VM 中运行 Kudu,请启用 SSE4.2 直通以将 SSE4.2 支持传递到 VM 中。1 1个磁盘用于预写日志 (WAL)。使用 SSD 驱动器可以提高性能。
Master最低:256 MB推荐:1 GB1 1个磁盘

Oozie

元件Java 堆CPU磁盘
Oozie最小值:1 GB(这是 Cloudera Manager 设置的默认值)。这对于少于 10 个同时进行的工作流来说已经足够了,无需分叉。如果发现垃圾回收过多或内存不足错误,请将堆大小增加到 4 GB(对于中型生产群集)或 8 GB(对于大型生产) 集群。使用 Oozie 服务器的 Java 堆大小(以字节为单位)Oozie 配置属性设置此值。无需资源无需资源

其他调整

对于具有许多协调器且使用复杂工作流运行的工作负载(日志中显示已达到最大并发性警告,并且 Oozie 命令显示大型队列):admin -queuedump

· 将属性的值增加到 50。oozie.service.CallableQueueService.callable.concurrency

· 将属性的值增加到 200。oozie.service.CallableQueueService.threads

不要将 Derby 数据库用作 Oozie 的后端数据库。

Search

元件Java 堆CPU磁盘
Solr小型工作负载或评估:16 GB较小的生产环境:32 GB较大的生产环境:对于大多数集群来说,96 GB 就足够了。使用 Solr 服务器的 Java 堆大小(以字节为单位)Solr 配置属性设置此值。最小值:4建议:16 个用于生产工作负载没有要求。Solr 使用 HDFS 进行存储。

Sentry

元件Java 堆CPU磁盘
Sentry Server最低:576 MB建议:Hive 数据库中每百万个对象(服务器、数据库、表、分区、列、URI 和视图)2.5 GB使用 Sentry 服务器的 Java 堆大小(以字节为单位)Sentry 配置属性设置此值。最小值:4

Spark

元件Java 堆CPU磁盘
Spark History Server最低:512 MB使用 History Server 的 Java 堆大小(以字节为单位)Spark 配置属性设置此值。1重要:Cloudera 建议您根据特定的集群使用情况调整 Spark History Server 的 CPU 和内存数量至少 1 个磁盘用于日志文件。

YARN

元件Java 堆CPU其他建议
Job History Server最低:1 GB内存中每保留 100000 个任务,内存增加 1.6GB。使用 JobHistory Server 的 Java 堆大小(以字节为单位)YARN 配置属性设置此值。最低:1 核将属性设置为二进制(使用此设置,历史记录文件的加载速度将提高约 2-3 倍)。在 CDH 中可用 仅限 5.5.0 或更高版本。mapreduce.jobhistory.jhist.format
NodeManager最低:1 GB。为以下条件配置额外的堆内存:大量容器Spark或MapReduce中的大随机播放大小使用 NodeManager 的 Java 堆大小(以字节为单位)YARN 配置属性设置此值。最小:8-16 个内核推荐:32-64 核磁盘:最小:8 个磁盘建议:12 个或更多磁盘联网:最低要求:双 1Gbps 或更快推荐:单/双 10 Gbps 或更快
资源管理器最低:6 GB为以下条件配置额外的堆内存:更多的任务更大的集群大小保留的已完成应用程序数(使用属性配置。yarn.resourcemanager.max-completed-applications调度程序配置使用 ResourceManager 的 Java 堆大小(以字节为单位)YARN 配置属性设置此值。最低:1 核
其他设置将 ApplicationMaster 内存 YARN 配置属性设置为 512 MB将“容器内存最小 YARN”配置属性设置为 1 GB。

ZooKeeper

元件Java 堆CPU磁盘
ZooKeeper 服务器最低:1 GB在监视 10,000 - 100,000 个临时 znode 并使用 1,000 个或更多客户端时增加堆大小。使用 ZooKeeper 服务器的 Java 堆大小(以字节为单位)ZooKeeper 配置属性设置此值。最小:4 核ZooKeeper 并非设计为低延迟服务,并且不会从 SSD 驱动器的使用中受益。ZooKeeper 访问模式 – 仅追加写入和顺序读取 – 在设计时考虑到了旋转盘。因此,Cloudera 建议使用 HDD 驱动器。

操作系统要求

CDH 和 Cloudera Manager 支持的操作系统

CDH 为与 RHEL 兼容的 SLES 和 Ubuntu 操作系统的特定版本提供 64 位软件包。

数据库要求

目前支持的数据库有Mysql,MariaDB,PostgreSQL,Oracle,支持的各个数据库版本信息和对应的CDH版本信息如下:

Java要求

仅支持 64 位 JDK。Cloudera Manager 6 和 CDH 6 不支持 JDK 7。

不支持在不同 JDK 版本的同一集群中运行 CDH 节点。所有群集主机必须使用相同的 JDK 更新级别。

注意

JDK 8u271、JDK 8u281 和 JDK 8u291 可能会由于 JDK-8245417 和 JDK-8256818 而导致套接字泄漏问题。请注意 JDK 的构建版本,因为一些后续构建被固定为 在 JDK-8256818 中进行了描述。

解决办法:考虑使用较新版本的 JDK(如 8u282)或已修复问题的 JDK 内部版本。

不支持 JDK 8u40、8u45 和 8u60,因为 JDK 问题会影响 CDH 功能:JDK 8u40 和 8u45 受 JDK-8077155 影响,这会影响 HTTP 身份验证 对于某些 Web UI。JDK 8u60 与 AWS 开发工具包不兼容,并导致 DistCP 出现问题。

Hue 中的 Oozie 工作流图形显示无法与 低于 8U40 的JDK版本 一起正常工作 。

重要:

对于在使用 Kerberos 的集群上运行的 JDK 8u241 及更高版本,必须通过设置 来禁用引用。sun.security.krb5.disableReferrals=true

例如,使用 OpenJDK 1.8.0u242:

1. 使用文本编辑器打开。/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/lib/security/java.security

2. 添加(它可以位于文件的底部)。sun.security.krb5.disableReferrals=true

3. 在具有受影响的 JDK 版本的每个节点上添加此属性。

4. 使用 JDK 重新启动应用程序,以使更改生效。

网络和安全要求

CDH 和 Cloudera Manager 支持的传输层安全版本

指示的传输层安全性 (TLS) 版本支持以下组件:

组件角色名称端口版本
Cloudera ManagerCloudera Manager Server7182TLS 1.2
Cloudera ManagerCloudera Manager Server7183TLS 1.2
Flume9099TLS 1.2
FlumeAvro 源/接收器TLS 1.2
FlumeFlume HTTP 源/接收器TLS 1.2
HBaseMasterHBase Master Web UI Port60010TLS 1.2
HDFSNameNodeSecure NameNode Web UI Port50470TLS 1.2
HDFSSecondary NameNodeSecure Secondary NameNode Web UI Port50495TLS 1.2
HDFSHttpFSREST Port14000TLS 1.1, TLS 1.2
HiveHiveServer2HiveServer2 Port10000TLS 1.2
HueHue ServerHue HTTP Port8888TLS 1.2
ImpalaImpala DaemonImpala Daemon Beeswax Port21000TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala DaemonImpala Daemon HiveServer2 Port21050TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala DaemonImpala Daemon 后端 Port22000TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala StateStoreStateStore 服务端口24000TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala DaemonImpala Daemon HTTP 服务器端口25000TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala StateStoreStateStore HTTP 服务器端口25010TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala 目录服务器Catalog Server HTTP Server Port25020TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
ImpalaImpala 目录服务器Catalog Server Service Port26000TLS 1.0, TLS 1.1, TLS 1.2
建议客户端使用支持的最高版本 TLS 1.2。
OozieOozie ServerOozie HTTPS Port11443TLS 1.1, TLS 1.2
SolrSolr ServerSolr HTTP Port8983TLS 1.1, TLS 1.2
SolrSolr ServerSolr HTTPS Port8985TLS 1.1, TLS 1.2
SparkHistory Server18080TLS 1.2
YARNResourceManagerResourceManager Web Application HTTP Port8090TLS 1.2
YARNJobHistory ServerMRv1 JobHistory Web Application HTTP Port19890TLS 1.2

CDH和ClouderaManager网络和安全要求

Cloudera Manager 部署中的主机必须满足以下网络和安全要求:

网络协议支持:CDH 需要 IPv4。不支持 IPv6,必须禁用

多宿主支持

熵:静态数据加密需要足够的来确保随机性。

群集主机必须具有正常工作的网络名称解析系统和格式正确的文件。所有群集主机都必须已正确配置 通过 DNS 进行正向和反向主机解析。文件必须:1.包含有关所有主机的主机名和 IP 地址的一致信息2.不包含大写主机名3.不包含重复的 IP 地址

群集主机不得在配置 DNS 中或配置 DNS 时使用别名。格式正确的文件(/etc/hosts/etc/hosts)应该 类似于以下示例:

127.0.0.1 localhost.localdomain localhost

192.168.1.1 http://cluster-01.example.com cluster-01

192.168.1.2 http://cluster-02.example.com cluster-02

192.168.1.3 http://cluster-03.example.com cluster-03

· 必须禁用或配置防火墙,以允许访问 Cloudera Manager、CDH 和相关服务使用的端口

· 对于 RHEL 和 CentOS,每个主机上的文件必须包含正确的主机名。/etc/sysconfig/network

Cloudera Manager 和 CDH 使用多个用户帐户和组来完成其任务

Cloudera Manager、CDH 和托管服务创建并使用以下帐户和 组:

用户和组
组件(版本)Unix 用户ID功能
Cloudera Manager (所有版本)cloudera-scmcloudera-scmCloudera Manager 管理集群运行 ,Cloudera Manager Server、监控角色和其他 Cloudera Server 进程 作为 cloudera-scm。需要命名文件名为 keytab的 文件,因为 name 在 Cloudera Manager 中是硬编码的。cmf.keytab
Apache AccumuloaccumuloaccumuloAccumulo 进程以该用户身份运行
Apache Flumeflumeflume以用户身份写入 HDFS 的接收器必须具有写入权限。
Apache HBasehbasehbaseMaster 和 RegionServer 进程以该用户身份运行。
HDFShdfshdfs, hadoopNameNode 和 DataNodes 以该用户身份运行,HDFS 根目录以及用于编辑日志的目录 应该归它所有
Apache HivehivehiveHiveServer2 进程和 Hive 元存储进程以该用户身份运行。必须定义用户才能进行 Hive 访问其元存储数据库(例如 MySQL 或 Postgres),但它可以是任何标识符,并且不对应于 Unix uid。这是在 hive-site.xml 中。
Apache HCataloghivehive用于对 Hive 功能的 REST 访问,以用户身份运行
HttpFShttpfshttpfsHttpFS 服务以该用户身份运行
HuehuehueHue 服务以该用户身份运行。
Hue 负载均衡apacheapacheHue 负载平衡器依赖于使用用户的 apache2 软件包 名字。Cloudera Manager 不使用此用户 ID 运行进程
Impalaimpalaimpala, hiveImpala 服务以该用户身份运行
Apache KafkakafkakafkaKafka 代理和镜像制造商以该用户身份运行。
Java KeyStore KMSkmskmsJava KeyStore KMS 服务以该用户身份运行。
Key Trustee KMSkmskmsKey Trustee KMS 服务以该用户身份运行。
Key Trustee ServerkeytrusteekeytrusteeKey Trustee Server 服务以该用户身份运行。
KudukudukuduKudu 服务以该用户身份运行。
MapReducemapredmapred, hadoop如果没有 Kerberos,JobTracker 和任务将以该用户身份运行。LinuxTaskController 二进制文件归此用户所有,用于 Kerberos。
Apache OozieoozieoozieOozie 服务以该用户身份运行。
Parquet~~没有特殊用户
Apache Pig~~没有特殊用户
Cloudera SearchsolrsolrSolr 进程以该用户身份运行。
Apache SparksparksparkSpark History Server 进程以该用户身份运行。
Apache SentrysentrysentrySentry 服务以该用户身份运行。
Apache Sqoopsqoopsqoop此用户仅适用于 Sqoop1 元存储,不建议使用该配置选项。
YARNyarnyarn, hadoop如果没有 Kerberos,所有 YARN 服务和应用程序都以该用户身份运行。LinuxContainerExecutor 二进制文件归 Kerberos 的此用户。
Apache ZooKeeperzookeeperzookeeperZooKeeper 进程以该用户身份运行。它是不可配置的。

静态数据加密要求

加密由多个组件组成,每个组件都有自己的要求。

静态数据加密保护可以在 Hadoop 中的多个级别应用:

1.操作系统文件系统级别

2.网络级

3.HDFS 级别(保护静态数据和传输中的数据)

Entropy要求

加密操作需要来确保随机性。

可以通过运行以下命令来检查 Linux 系统上的可用熵:

cat /proc/sys/kernel/random/entropy_avail

输出显示当前可用的熵。多次检查熵以确定系统上熵池的状态。如果熵始终较低(500 或更少),您必须通过安装和启动服务来增加它。在 RHEL 6 兼容上运行以下命令:

对于 RHEL 7,请运行以下命令:

确保运行 Key Trustee Server、Key Trustee KMS 和 Navigator Encrypt 的主机具有足够的熵来执行加密操作。

Cloudera Manager 要求

使用 Cloudera Manager 安装和管理 Key Trustee Server 需要 Cloudera Manager 5.4.0 及更高版本。Key Trustee Server 不需要 Cloudera Navigator Audit Server 或 元数据服务器。

umask 要求

Key Trustee Server 安装需要缺省值。

网络要求

对于新的 Key Trustee Server 安装(5.4.0 及更高版本),Key Trustee Server 需要以下 TCP 端口 为入站流量开放:

11371:客户端通过 HTTPS 连接到此端口。

11381 (PostgreSQL)被动密钥受托人服务器连接到此端口以进行数据库复制。

TLS证书要求

为确保网络流量安全,Cloudera 建议获取特定于密钥受托人服务器主机名的传输层安全性 (TLS) 证书。要获取 证书,则为 Key Trustee Server 主机的完全限定域名 (FQDN) 生成证书签名请求 (CSR)。CSR 必须由受信任的证书颁发机构 (CA) 签名。 在 CA 验证和签署证书后,密钥受托人服务器 TLS 配置需要:

http://1.CA 签名的证书

2.用于生成原始 CSR 的私钥

3.中间证书/链文件(由 CA 提供)

Cloudera 建议不要使用自签名证书。如果使用自签名证书,则必须在注册时使用该参数 Navigator 使用密钥受托人服务器进行加密。这将跳过 TLS 主机名验证,可能会出现某些网络级攻击。

浏览器要求

Cloudera Manager、Cloudera Navigator 和 Hue 在两个最新的 LTS (long term support) 或 ESR(扩展支持版本)浏览器上受支持。Cookie 和 JavaScript 必须 启用。

重要:要查看 Hue Web UI 中的所有图标,使用 IE 和 HTTPS 的用户必须添加负载平衡器。

· Chrome: 63 、

· Firefox: 59

· Safari(仅限 Mac)

· Internet Explorer: 11

· Microsoft Edge: 41

标签:Cloudera,Java,最全,CDH,Hadoop,详解,GB,磁盘
From: https://blog.csdn.net/weixin_45424111/article/details/139627796

相关文章

  • 大模型「训练」与「微调」概念详解【6000字长文】
    本文你将学到什么1、大模型预训练与微调的基本流程2、预训练、训练、后期预训练、微调的区别3、大模型训练与微调的一些概念,如:Post-pretrain、SFT、RLHF、模型对齐、Lora、Q-Lora、大模型量化、微调指标、微调参数、大模型评测指标预训练与微调概览在大模型的预训练与微......
  • ubuntu在apt安装时出现的弹窗详解
    在一个全新安装的Ubuntu22.04LTS上,每次使用apt安装或更新软件包时,会出现一个Daemonsusingoutdatedlibraries弹窗,Whichserviceshouldberestarted?大概是下面这个样子: 这让我想起了windows上每次打开一个应用都会弹窗提示安全提醒,异曲同工啊。一脸懵的情况下,只能一......
  • 算法01 递推算法及相关问题详解
    目录递推的概念训练:斐波那契数列解析参考代码训练:上台阶参考代码训练:信封解析参考代码递推的概念递推是一种处理问题的重要方法。递推通过对问题的分析,找到问题相邻项之间的关系(递推式),从起点出发(首项或者末项)然后使用循环不断地迭代,得到最后需要的结果。训练:斐波......
  • C语言详解(编译和链接)
    Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎~~......
  • 最全面的86五笔字根表
    摘自:https://www.cnblogs.com/yanan7890/p/8744535.html 86版五笔字G11王旁青头戋(兼)五一F12土士二干十寸雨D13大犬三(羊)古石厂S14木丁西A15工戈草头右框七H21目具上止卜虎皮J22日早两竖与虫依K23口与川,字根稀?L24田甲方框四车力M25山由贝,下框几T31禾竹一......
  • 【代码+详解】算法题 : 金银岛
    ❗❗❗必看:下列题我全部都使用Java语言写的,并且均可以提交成功,获得Accepted结果的.如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.❗❗❗感谢大家的支持,如果喜欢我的博客,关注点赞收藏评论一波,非常感谢!!!文章目录......
  • 网络安全学习路线图(2024版详解)
     近期,大家在网上对于网络安全讨论比较多,想要学习的人也不少,但是需要学习哪些内容,按照什么顺序去学习呢?其实我们已经出国多版本的网络安全学习路线图,一直以来效果也比较不错,本次我们针对市场需求,整理了一套系统的网络安全学习路线图,供大家学习参考。希望大家按照路线图进行系统......
  • 14款测试用例管理工具详解
    14款不错的测试用例管理工具对比:PingCode、TestRAIl、Xray、PractiTest、TricentisqTest、禅道(ZenTao)、Zephyr、Tapd、TestLink、TestCollab、Testin云测、云效(AlibabaCloudEffect)、TeavCloud、FitNesse。在软件开发过程中,测试用例管理工具的使用变得越来越重要。这些工具......
  • 【近邻算法】近邻算法详解——深入理解K-近邻(KNN)
    目录1引言2算法基础2.1核心原理2.2算法步骤3关键参数与优化3.1K值选择3.2距离度量4优缺点分析4.1优点4.2缺点5改进策略6应用案例深度解析:K-近邻算法在客户细分中的应用6.1引言6.2数据准备与预处理6.3特征选择与编码6.4K-近邻算法应用6.5模型......
  • 100个常用Shell使用命令详解
    转载自公众号:一口Linux 在大多数的Linux和Unix系统、及其他类Unix系统中,Shell是用户与操作系统内核交互的主要方式。作为一种强大的命令行解释器,它也支持编程功能,用户可以写脚本来处理各种任务。无论是新手还是专业人士,掌握Shell命令都是必不可少的技能。本文逐个解读和展示Sh......