Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
CDH 是 Cloudera 提供的一套基于 Hadoop 生态的大数据解决方案。它包括 Hadoop 生态的核心组件,如 HDFS、YARN、Hive、HBase 等,并提供了集成的管理、监控、安全性等功能,使大数据平台的构建和管理更加便捷。除此之外,它还包含了 Cloudera 自家开发的一些工具和服务,如 Cloudera Manager、Impala 等。
以下图片参考来自尚硅谷CDH6.3
Cloudera Distribution for Hadoop(CDH)是由 Cloudera 公司开发和维护的 Hadoop 生态系统的发行版。CDH 随着时间的推移经历了一些重要的历史节点,包括免费和收费模式的变化。以下是 CDH 几个发行版的历史以及重要时间节点的概述:
CDH(Cloudera Distribution for Hadoop)作为大数据一站式平台管理解决方案,带来了许多改观,解决了自建Hadoop集群中的许多问题。以下是CDH的优势总结:
综上所述,CDH通过解决组件兼容性、稳定性、安装配置、资源监控和运维等方面的问题,为用户提供了更加便捷、稳定和安全的大数据解决方案。同时,CDH的企业服务支持也为用户的业务提供了可靠的保障。
CDH 集群可以通过手动部署和使用 Cloudera Manager 部署两种方式。手动部署需要管理员逐个安装和配置各个组件,而 Cloudera Manager 则提供了集中式的集群部署、配置、监控和维护。
CDH 集群使用 Cloudera Manager 提供的集中式管理和监控功能来进行故障排除和监控。管理员可以通过 Cloudera Manager 的用户界面来查看集群的健康状况、性能指标和日志信息,从而及时发现并解决问题。
如果有,可以分享一下你在使用 CDH 部署和管理集群时的经验,如如何添加节点、配置服务、监控集群状态等。如果没有直接使用经验,可以提及自己对 CDH 的了解和学习计划。
CDH 集群可以通过多种方式实现高可用性,比如使用 HDFS 的 NameNode HA 机制,使用 YARN 的 ResourceManager HA,以及使用 Cloudera Manager 高可用等。这些机制可以确保在组件出现故障时,集群仍然可以保持可用状态。
Cloudera 提供了升级工具来帮助集群进行版本升级。在升级过程中,可以使用 Cloudera Manager 来检查和准备升级,然后按照文档指引逐步完成升级操作。升级前需要备份数据和配置,以及进行必要的测试。
参考文献:运维实战CDH5.16.2升级至CDH6.3.2 - 知乎
CDH 提供了多种数据安全功能,包括 Kerberos 认证、角色授权、数据加密等。管理员可以通过配置安全选项来保护
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
Kerberos中有以下一些概念需要了解:
(1)KDC:密钥分发中心,负责管理发放票据,记录授权。 (2)Realm:Kerberos管理领域的标识。 (3)principal:当每添加一个用户或服务的时候都需要向kdc添加一条principal,principl的形式为:主名称/实例名@领域名。 (4)主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体。 (5)实例名:实例名简单理解为主机名。
Kerberos 在 Cloudera Distribution for Hadoop (CDH) 中扮演着重要的角色,主要用于集群中的身份验证和安全通信。以下是 Kerberos 在 CDH 中的主要作用:
总的来说,Kerberos 在 CDH 中用于确保集群中的身份验证、通信和数据存储的安全性。它是建立在 CDH 安全性基础之上的核心组件,为企业级大数据解决方案提供了可信赖的安全保护。
cdh版本的hadoop在对数据安全上的处理通常采用Kerberos+Sentry的结构。 kerberos主要负责平台用户的权限管理,sentry则负责数据的权限管理。
Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。
Sentry提供了对Hadoop集群上经过身份验证的用户和应用程序的数据控制和强制执行精确级别权限的功能。Sentry目前可以与Apache Hive,Hive Metastore / HCatalog,Apache Solr,Impala和HDFS(仅限于Hive表数据)一起使用。
Sentry旨在成为Hadoop组件的可插拔授权引擎。它允许自定义授权规则以验证用户或应用程序对Hadoop资源的访问请求。Sentry是高度模块化的,可以支持Hadoop中各种数据模型的授权。
Sentry 是一个开源的权限和访问控制解决方案,主要用于大数据生态系统中的安全性管理。在 Cloudera Distribution for Hadoop (CDH) 中,Sentry 扮演着重要的角色,具有以下主要作用:
总之,Sentry 在 CDH 中的主要作用是提供灵活、精细和统一的权限管理,帮助管理员保护数据和集群资源的安全,满足合规性要求,降低安全风险。
这个问题就要说 NameNode 的高可用了,即 NameNode HA。一个 NameNode 有单点故障的问题,那就配置双 NameNode,配置有两个关键点,一是必须要保证这两个 NN 的元数据信息必须要同步的,二是一个 NN 挂掉之后另一个要立马补上。
假设 NameNode1当前为 Active状态,NameNode2当前为 Standby状态。如果某一时刻NameNode1对应的 ZKFailoverController进程发生了“假死”现象,那么 Zookeeper服务端会认为 NameNode1挂掉了,根据前面的主备切换逻辑,NameNode2 会替代 NameNode1 进入 Active 状态。但是此时 NameNode1 可能仍然处于 Active 状态正常运行,这样 NameNode1和 NameNode2都处于 Active状态,都可以对外提供服务。这种情况称为脑裂
脑裂对于 NameNode 这类对数据一致性要求非常高的系统来说是灾难性的,数据会发生错乱且无法恢复。Zookeeper 社区对这种问题的解决方法叫做 fencing, 中文翻译为隔离,也就是想办法把旧的 Active NameNode 隔离起来,使它不能正常对外提供服务。
在进行 fencing 的时候,会执行以下的操作:
该步骤整理参考:下硅谷大数据CDH6.3.2教程
当编译 Flink 并制作为 Cloudera CDH 可识别的 Parcel 时,您可以按照以下详细步骤操作:
在 Linux 终端中,创建一个用于存放下载文件的文件夹,如 /opt/software
:
mkdir /opt/software
cd /opt/software
下载 Flink 1.13.6 的二进制包和源码包:
wget https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.11.tgz
wget https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-src.tgz
下载 Maven 3.6.3 的二进制包:
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解压 Maven 并配置环境变量:
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/module
echo "export MAVEN_HOME=/opt/module/apache-maven-3.6.3" >> /etc/profile.d/my_env.sh
echo "export PATH=\$PATH:\$MAVEN_HOME/bin" >> /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh
验证 Maven 安装:
mvn -v
修改 Maven 镜像源(可选):
在 /opt/module/apache-maven-3.6.3/conf/settings.xml
中添加合适的镜像源。
解压 Flink 源码包:
tar -zxvf flink-1.13.6-src.tgz -C /opt/module
mv flink-1.13.6/ flink-1.13.6-src
修改 Flink 源码中的 pom.xml
文件:
<hadoop.version>
中设置为 3.0.0-cdh6.3.2
。<hive.version>
和 <hivemetastore.hadoop.version>
中设置为 2.1.1-cdh6.3.2
。<repositories>
中添加相应仓库。修改 flink-sql-connector-hive-2.2.0
的 pom.xml
文件:
hive-exec
版本为 2.1.1-cdh6.3.2
。编译 Flink 项目(可以跳过测试):
cd /opt/module/flink-1.13.6-src/
mvn clean install -DskipTests -Dfast -Drat.skip=true -Dhaoop.version=3.0.0-cdh6.3.2 -Dinclude-hadoop -Dscala-2.11 -T10C
meta
、lib
、bin
、etc
等文件夹。lib
文件夹中。lib
文件夹。使用 Cloudera Parcels 工具生成 Parcel 文件:
./build.sh parcel
parcel-repo
目录中。manifest.json
文件,添加 Flink.parcel 相关的加载依赖配置。
FLINK_ON_YARN-1.13.6.jar
文件拷贝到 Cloudera Manager 的 csd
目录中。原文链接:跳转阿里云官方
部署
Cloudera Manager 及其管理的所有集群的配置。
动态资源池
在 Cloudera Manager 中,这是资源的命名配置,以及用于在池中运行的 YARN 应用程序或 Impala 查询之间调度资源的策略。
集群
包含 HDFS 文件系统并对该数据运行 MapReduce 和其他进程的一组计算机或计算机机架。
在 Cloudera Manager 中,是一个逻辑实体,包含一组主机,在主机上安装的单个版本的 Cloudera Runtime 以及在主机上运行的服务和角色实例。一台主机只能属于一个集群。Cloudera Manager 可以管理多个集群,但是每个集群只能与一个 Cloudera Manager Server 关联。
主机
在 Cloudera Manager 中,是运行角色实例的物理或虚拟机。一台主机只能属于一个集群。
机架
在 Cloudera Manager 中,是一个物理实体,包含一组通常由同一交换机提供服务的物理主机。
服务
在尽可能可预测的环境中运行在/etc/init.d/定义的 System V 初始化脚本的 Linux 命令 ,删除大多数环境变量并将当前工作目录设置为/。
Cloudera Manager 中的托管功能类别,可以在集群中运行,有时称为服务类型。例如:Hive、HBase、HDFS、YARN 和 Spark。
服务实例
在 Cloudera Manager 中,是在集群上运行的服务的实例。例如:“ HDFS-1”和“yarn”。服务实例跨越许多角色实例。
角色
在 Cloudera Manager 中,服务中的功能类别。例如,HDFS 服务具有以下角色:NameNode、SecondaryNameNode、DataNode 和 Balancer。有时称为角色类型。
角色实例
在 Cloudera Manager 中,是在主机上运行的角色的实例。它通常映射到 Unix 进程。例如:“ NameNode-h1”和“ DataNode-h1”。
角色组
在 Cloudera Manager 中,这是一组角色实例的一组配置属性。
主机模板
Cloudera Manager 中的一组角色组。将模板应用于主机时,将创建每个角色组中的角色实例并将其分配给该主机。
网关
一种角色类型,通常为客户端提供对特定群集服务的访问权限。例如,HDFS、Hive、Kafka、MapReduce、Solr 和 Spark 各自具有网关角色,以为其客户提供对其各自服务的访问。网关角色并非总是在其名称中带有“网关”,也不是专门用于客户端访问。例如,Hue Kerberos Ticket Renewer 是一个网关角色,用于代理 Kerberos 中的票证。
支持一个或多个网关角色的节点有时称为网关节点或边缘节点,在网络或云环境中常见“边缘”的概念。对于 Cloudera 集群,当从 Cloudera Manager 管理控制台的“操作”菜单中选择“部署客户端配置”时,群集中的网关节点将接收适当的客户端配置文件。
Parcel
二进制分发格式,包含编译的代码和元信息,例如程序包描述、版本和依赖项。
静态服务池
在 Cloudera Manager 中,是跨一组服务的总群集资源(CPU,内存和I / O权重)的静态分区。
如下所示,Cloudera Manager 的核心是 Cloudera Manager Server。服务器托管Cloudera Manager 管理控制台、Cloudera Manager API 和应用程序逻辑、并负责安装软件、配置、启动和停止服务以及管理在其上运行服务的集群。
Cloudera Manager Server 与其他几个组件一起使用:
代理 安装在每台主机上。该代理负责启动和停止进程、解包配置、触发安装以及监控主机。
管理服务 由一组角色组成的服务,这些角色执行各种监控、警报和报告功能。
数据库 存储配置和监控信息。通常,多个逻辑数据库跨一个或多个数据库服务器运行。例如,Cloudera Manager Server 和监控角色使用不同的逻辑数据库。
Cloudera 存储库 由 Cloudera Manager 分发的软件存储库。
客户端 是与服务器交互的接口。
Cloudera Manager 管理控制台 基于Web的用户界面,管理员用于管理集群和Cloudera Manager。
Cloudera Manager API API 开发人员用于创建自定义 Cloudera Manager 应用程序。
心跳 心跳是 Cloudera Manager 中的主要通信机制。默认情况下,代理每15秒将心跳发送一次到 Cloudera Manager Server。但是,为减少用户等待时间,在状态更改时增加了频率。
在心跳交换期间,代理会将其活动通知给 Cloudera Manager Server。反过来,Cloudera Manager Server 响应代理应执行的操作。代理和 Cloudera Manager Server 最终都进行了一些协调。例如,如果您启动服务,则代理将尝试启动相关进程;否则,代理将尝试启动相关进程。如果进程无法启动,则 Cloudera Manager Server 会将启动命令标记为失败。