页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

 

Cloudera Manager 5 概述

Cloudera Manager 是一款用于管理 CDH 群集的端到端应用程序。Cloudera Manager 通过提供对 CDH 群集每个部分的细微透明度和掌控力设立了企业部署标准 - 让操作员不仅可以提高性能、服务质量、合规性,还可以降低管理成本。借助 Cloudera Manager,您可以轻松部署并集中操作全部 CDH 堆栈和其他托管服务。该应用程序实现了安装流程的自动化,将部署时间从数周减至数分钟;提供全群集范围内正在运行的主机和服务的实时视图;提供单一中央控制台以控制整个群集的配置更改;以及采用多种多样的报告和诊断功能帮助您优化性能和利用率。此简介对 Cloudera Manager 的基本概念、结构和功能进行介绍。

继续阅读 : 

术语

为了有效地使用 Cloudera Manager ,您应首先了解其术语。各术语之间的关系如下图所示且定义如下 : 

其中一些术语可直接使用,如群集和服务,无需进一步说明。其他术语(如角色组、网关、主机模板和 parcel)将在后续各部分中加以说明。

通常会令人混淆的一点是“服务”和“角色”的类型-实例性质。Cloudera Manager 和本简介有时会使用相同的术语来表示类型和实例。例如,Cloudera Manager Admin Console Home > Status 标签和 Cluster > ClusterName 菜单列出的服务实例。这类似于编程语言中的做法,例如,术语“字符串”可能指类型 (java.lang.String),也可能指该类型的实例(“hi there”)。当有必要对类型和实例加以区分时,会附加单词 “type” 指示类型,附加单词 “instance” 明确指示实例。

部署

Cloudera Manager 及其管理的所有集群的配置。

Dynamic Resource Pool(动态资源池)

Cloudera Manager 中,资源的指定配置及用于在池中运行的 YARN 应用程序或 Impala 查询之间安排资源的策略。一个伪分布式集群是 CDH 运行在一个单机器上,用于演示和个人学习。

集群

  1. 包含一个 HDFS 文件系统和在这些数据上运行 MapReduce 和其它进程的一组服务器或者机架。
  2. 一个逻辑实体,它包含一组主机、主机上安装的单个版本的 CDH 以及在主机上运行的服务和角色实例。一个主机只能属于一个集群。Cloudera Manager 能够管理多个集群,然而每个群集只能够关联一个单个的 Cloudera Manager Server 或者 Cloudera Manager HA pair

主机

Cloudera Manager 中,一个用于运行角色实例的物理机或虚拟机。一个主机只能够属于一个群集。

机架

Cloudera Manager 中,一个物理实体,它包含通常由同一交换机提供服务的一组物理主机。

服务

  1. 一个 Linux 命令,在 /etc/init.d/ 中运行一个 System V 的初始化脚本,尽可能的初始化环境,删除大部分的环境变量并且设置当前的工作目录为 /。
  2. 一种在集群中运行的受管功能类别,此功能可能是分布式或非分布式的。有时称为作为一种服务类型。例如:MapReduce、HDFS、YARN、Spark 和 Accumulo。但是,在传统环境中,多个服务在一个主机上运行,在分布式系统中,一个服务在多个机上运行。

服务实例

Cloudera Manager 中,在主机上运行服务的实例,例如 : “HDFS” 和 “YARN”。一个服务实例包含很多角色实例。

角色

Cloudera Manager 中,服务内的某种功能类别。例如,HDFS 服务有这些角色 : NameNode,SecondaryNameNode,DataNode,和 Balancer。有时称为角色类型。请看 用户角色

角色实例

Cloudera Manager 中,运行在主机上的角色实例。它通常表现为 “Unix 进程”。例如,“NameNode-h1” 和 “DataNode-h1”。

角色组

Cloudera Manager 中,一组用于一套角色实例的配置属性。

主机模版

Cloudera Manager 中的一组角色组。对主机应用模版时,系统会根据每个角色组创建角色实例并分配给该主机。

GateWay

Cloudera Manager 中,一个指定主机的角色,该主机没有对应该主机上运行的服务的任何角色实例时,该主机应接收该服务的客户端配置。

Parcel

一种二进制分发格式,包含编译代码和元信息,例如,包描述、版本和从属关系。

Static Service Pool(静态服务池)

Cloudera Manager 中,一组服务中的总集群资源(CPU、内存和 I/O 权重)的静态分区。

集群示例

假设带有四台主机的群集群集 1 如 Cloudera Manager 的以下列表所示 : 

主机 “tcdn501-1” 是群集的 “Master” 主机,因此它具有更多的实例,(21个),而其他主机上运行的角色实例只有 7 个。除了 CDH “Master” 角色实例之外,“tcdn501-1” 还具有 Cloudera Manager Service 角色。

体系架构

如下图所示,Cloudera Manager 的核心是 Cloudera Manager Server。Server 托管 Admin Console Web Server 和应用程序逻辑。它负责安装软件、配置、启动和停止服务以及管理运行服务的群集。

Cloudera Manager Server 可以和其它组件搭配使用 : 

  1. Agent - 安装在每台主机上。它负责启动和停止进程,解压缩配置,触发安装和监控主机。
  2. Managerment Service - 一项包括执行各种监控、报警和报告功能的一组角色的服务。
  3. DataBase - 存储配置和监控信息。在一个或多个数据库服务器中,通常会有多个逻辑数据库运行。例如,Cloudera Manager 服务器和监控角色使用不同的逻辑数据库。
  4. Cloudera Repository - 可供 Cloudera Manager 分配的软件的存储库。
  5. Clients - 是用于与服务器进行交互的接口 : 
  • Admin Comsole - 管理员用来管理群集和 Cloudera Manager 的基于 Web 的 UI信号检测。
  • API - 开发人员使用 API 可以创建自定义的 Cloudera Manager 应用程序。

信号检测

检测信号是 Cloudera Manager 中的主要通信机制。默认情况下,Agent 每隔 15 秒向 Cloudera Manager Server 发送一次检测信号。但是,为了减少用户延迟,在状态变化时会提高频率。

在检测信号交换过程中,Agent 告知 Cloudera Manager Server 操作正在执行。反过来,Cloudera Manager Server 会用 Agent 应该正在执行的操作响应。Agent 和 Cloudera Manager Server 都会在执行一些调整后结束。例如,如果启动一项服务,Agent 会尝试启动相关进程;如果进程无法启动,服务器会将启动命令标记为失败。

状态管理

Cloudera Manager Server 维护群集的状态。此状态可以分为两类:“模型”和“运行时”,它们都存储在 Cloudera Manager Server 数据库中Cloudera Manager Server 维护群集的状态。此状态可以分为两类:“模型”和“运行时”,它们都存储在 Cloudera Manager Server 数据库中。

Cloudera Manager 对 CDH 和托管服务进行建模 : 它们的角色、配置和相互依赖关系。模型状态捕获什么进程应在何处运行以及具有什么配置。例如,模型状态捕获一个群集包含 17 台主机且每台主机都应运行 DataNode 这一事实。您与模型通过 Cloudera Manager Admin Console 配置屏幕和 API 以及“添加服务”等操作进行交互。

运行时状态是哪些进程正在何处运行以及正在执行哪些命令(例如,重新平衡 HDFS 或执行备份/灾难恢复计划或滚动升级或停止)。运行时状态包括运行进程所需的确切配置文件。在 Cloudera Manager 管理控制台中按“开始”时,服务器会收集相关服务和角色的所有配置,验证配置,生成配置文件并将它们存储在数据库中。

当您更新配置(例如,Hue Server Web 端口)时,您即更新了模型状态。但是,如果 Hue 在更新时正在运行,则它仍将使用旧端口。当出现这种不匹配情况时,角色会标记为具有“过时的配置”。要重新同步,您需重启角色(这会触发重新生成配置和重启进程)。

虽然 Cloudera Manager 对所有合理配置进行建模,但必然会有某些情况需要特殊处理。例如,为了帮助您解决漏洞或探索不受支持的选项,Cloudera Manager 支持“高级配置代码段”机制,该机制允许您直接向配置文件中添加属性。

配置管理

Cloudera Manager 定义多个级别的配置 : 

  1. 服务级别可定义将应用于整个服务实例的配置,如 HDFS 服务的默认复制因子 (dfs.replication)。
  2. 角色组级别可定义将应用于成员角色的配置,如 DataNodes 的处理程序数量 (dfs.datanode.handler.count)。不同 DataNodes 组的设置可能不同。例如,运行功能更强的硬件的 DataNode 可能有更多的处理程序。
  3. 角色实例级别可覆盖它从其角色组继承的配置。此功能应尽量少用,因为它极易导致角色组内配置出现差异。其中一个使用示例便是临时启用特定角色实例中的调试日志记录以对问题进行故障排除。
  4. 主机具有与监控、软件管理和资源管理相关的配置。
  5. Cloudera Manager 本身具有与其自身的管理操作相关的配置。

角色组

你可以设置服务实例(例如,HDFS)或角色实例(例如,host17 上的 DataNode)中的配置。单个角色继承服务级别设置的配置。在角色级别所做的配置会覆盖从服务级别继承的配置。尽管这种方法提供了灵活性,但以相同方式配置一组角色实例却十分繁琐。单个角色继承服务级别设置的配置。在角色级别所做的配置会覆盖从服务级别继承的配置。尽管这种方法提供了灵活性,但以相同方式配置一组角色实例却十分繁琐。

Cloudera Manager 支持角色组,角色组是用于向一组角色实例分配配置的机制。些组中的成员随后会继承这些配置。例如,在具有异构硬件的群集中,可以为每个主机类型创建 DataNode 角色组,并可将这些主机上运行的 DataNode 分配到其对应的角色组。这样一来,通过修改一个角色组的配置,即可设置同一硬件上运行的所有 DataNode 的配置。上文所述的 HDFS 服务为该服务的角色定义了以下角色组 : 

除了可以轻松管理角色子组的配置,角色组还可以维护不同的配置进行实验或管理不同用户和/或工作负载的共享群集。

主机模版

在典型环境中,主机组具有相同的硬件及硬件上运行的同一组服务。主机模板定义群集中的一组角色组(每种类型最多只有一个)并提供了两个主要优点 : 

  1. 向群集轻松添加新主机 - 多台主机仅通过一次操作即可创建、配置和启动不同服务的角色。
  2. 轻松更改一组主机上不同服务的角色的配置 - 通常用于快速切换整个群集的配置以适应不同的工作负载或用户。

服务端和客户端配置

管理员有时会对修改 /etc/hadoop/conf 之后重启 HDFS 没有效果这一情况感到惊讶。这是因为 Cloudera Manager 启动的服务实例未读取默认位置的配置。我们以 HDFS 为例,当不受 Cloudera Manager 管理时,每台主机通常仅有一种配置,配置位于 /etc/hadoop/conf/hdfs-site.xml。同一主机上运行的服务器端守护程序和客户端全部使用相同的配置。

Cloudera Manager 区分服务器配置和客户端配置。若使用 HDFS,文件 /etc/hadoop/conf/hdfs-site.xml 仅包含与 HDFS 客户端相关的配置。也就是说,默认情况下,如果您运行一个需要与 Hadoop 通信的程序,它会从该目录获取 NameNode 和 JobTracker 的地址以及其他重要配置。/etc/hbase/conf 和/etc/hive/conf 也采用类似方法。

与此相反, HDFS 角色实例(例如,NameNode 和 DataNode)会从 /var/run/cloudera-scm-agent/process/unique-process-name 下的每个进程专用目录获取它们的配置。 通过为每个进程提供自己的专用代码和配置环境,Cloudera Manager 可以独立控制每个进程。例如,下面是 879-hdfs-NAMENODE 进程目录示例的内容 : 

$ tree -a /var/run/cloudera-scm-Agent/process/879-hdfs-NAMENODE/
  /var/run/cloudera-scm-Agent/process/879-hdfs-NAMENODE/
  ├── cloudera_manager_Agent_fencer.py
  ├── cloudera_manager_Agent_fencer_secret_key.txt
  ├── cloudera-monitor.properties
  ├── core-site.xml
  ├── dfs_hosts_allow.txt
  ├── dfs_hosts_exclude.txt
  ├── event-filter-rules.json
  ├── hadoop-metrics2.properties
  ├── hdfs.keytab
  ├── hdfs-site.xml
  ├── log4j.properties
  ├── logs
  │   ├── stderr.log
  │   └── stdout.log
  ├── topology.map
  └── topology.py

区分服务器和客户端配置有以下几个好处 : 

  1. 服务器端配置中的敏感信息(如 Hive Metastore RDBMS 的密码)不会暴露给客户端。
  2. 可以使用自定义配置部署依赖于其他服务的服务。例如,要获取良好的 HDFS 读取性能,Cloudera Impala 需要一个特殊版本的 HDFS 客户端配置,这可能对通用客户端有害。此设置通过将 Impala 守护程序的 HDFS 配置(存储在上述每个进程目录中)与通用客户端的配置分离 (/etc/hadoop/conf) 进行存档。
  3. 客户端配置文件小得多,且更具可读性。这也可避免非管理员 Hadoop 用户与不相关的服务器端属性相混淆。

部署客户端配置和 Gateways(网关)

客户端配置是一个包含与服务设置相关的配置文件的 zip 文件。每个 zip 文件都包含服务所需的一组配置文件。例如,MapReduce 客户端配置 zip 文件包含 core-site.xml、hadoop-env.sh、hdfs-site.xml、log4j.properties 和 mapred-site.xml 的副本。Cloudera Manager 支持下载客户端配置操作,以启用将客户端配置文件分配给群集外的用户的功能。

Cloudera Manager 可以在群集内部署客户端配置;每项适用的服务都有一个部署客户端配置操作。此操作不一定会将客户端配置部署到整个群集;它仅会将客户端配置部署到分配到此服务的所有主机。例如,假设群集中有 10 台主机,MapReduce 服务正在运行主机 1-9。使用 Cloudera Manager 部署 MapReduce 客户端配置时,主机 10 不会获得客户端配置,因为 MapReduce 服务未向其分配任何角色。此设置旨在避免多项服务的客户端配置冲突。

网关还可用于自定义某些主机的客户端配置。网关可以放置在角色组中,而且这些组可以以不同的方式配置。但是,与角色实例不同之处在于无法覆盖网关实例的配置。

在我们前面讨论过的群集中,没有 Hive 角色的三台主机 (tcdn501-[2-5]) 具有 Hive 网关 : 

进程管理

在非 Cloudera Manager 管理的群集中,最有可能使用 init 脚本启动角色实例,例如,service hadoop-hdfs-datanode start。Cloudera Manager 不会将 init 脚本用于其管理的守护程序;在 Cloudera Manager 管理的群集中,使用 init 脚本启动和停止服务不可行。

在 Cloudera Manager 管理的群集中,只能通过 Cloudera Manager 启动或停止服务。Cloudera Manager 使用一种名为 supervisord 的开源进程管理工具,它会重定向日志文件,通知进程失败,为合适用户设置调用进程的有效用户 ID 等等。Cloudera Manager 支持自动重启崩溃进程。如果一个角色实例在启动后反复失败,Cloudera Manager 还会用不良状态标记该实例。

特别需要注意的是,停止 Cloudera Manager 和 Cloudera Manager Agent 不会停止群集;所有正在运行的实例都将保持运行。特别需要注意的是,停止 Cloudera Manager 和 Cloudera Manager Agent 不会停止群集;所有正在运行的实例都将保持运行。

Agent 的一项主要职责是启动和停止进程。当 Agent 从检测信号检测到新进程时,Agent 会在 /var/run/cloudera-scm-agent 中为它创建一个目录,并解压缩配置。

这些操作反映了重要的一点:Cloudera Manager 进程永远不会单独传输。换言之,一个进程不仅仅是 exec() 的参数—它还包括配置文件、需要创建的目录以及其他信息。

Agent 本身在启动时通过 init.d 启动。反过来,它与服务器通信,并计算出哪些进程应正在运行。Agent 受到监控,属于 Cloudera Manager 的主机监控的一部分:如果 Agent 停止检测信号,主机将被标记为运行状况不良。

软件分配管理

Cloudera Manager 的主要功能是在集群中安装 CDH 和受管服务软件。Cloudera Manager 支持两种软件分发格式 : 软件包和 Parcel。

软件包是一个二进制分发格式,包含已编译代码以及软件包描述、版本和依赖关系之类的元信息。软件包管理系统评估此元信息以允许执行软件包搜索、升级至更高版本及确保满足软件包的所有依赖关系。Cloudera Manager 对每个受支持操作系统使用本机“系统软件包管理器”。

Parcel 是一种包含 Cloudera Manager 使用的程序文件和其他元数据的二进制分配格式。Parcel 与软件包之间存在几点明显区别 : 

  1. Parcel 是完全独立的,并且安装在受版本控制的目录中,这意味着可以同时安装给定 parcel 的多个版本。然后可以将这些其中一个已安装的版本指定为活动版本。对于软件包,一次只能安装一个软件包,因此已安装版本和活动版本之间并无区别。
  2. Parcel 可安装在文件系统中的任何位置,默认情况下安装在 /opt/cloudera/parcels 中。而软件包安装在 /usr/lib 中。
  3. Parcel 自动处理下载,分发,激活当前的 Parcel 用于群集中每台主机上运行的操作系统。所有的 CDH 主机组成了一个逻辑的群集,需要运行在由 Cloudera 支持的主要的 OS(操作系统)发行版本。为了被 Cloudera Manager 支持,Cloudera Manager 需要在它管理的 CDH 集群中运行相同的 OS release(操作系统版本)。运行不同次要的 OS(操作系统)发行版本比运行不同主要的 OS(发行版本)的风险更小。Cloudera 推荐运行相同的次要的 OS(操作系统)发行版本,因为它简化了问题跟踪和可支持性。

主机管理

Cloudera Manager 提供了用于管理 Hadoop 群集中主机的多种功能。首次运行 Cloudera Manager Admin Console 时,您可以搜索要添加到群集的主机,选择主机后,可以将 CDH 角色映射到主机。Cloudera Manager 自动将作为群集中的托管主机身份 : JDK、Cloudera Manager Agent、CDH、Impala、Solr 等参与所需的所有软件部署到主机。

服务一旦部署和运行,Admin Console 中的“主机”区域便会显示群集中托管主机的整体状态。提供的信息包括主机上运行的 CDH 版本、主机所属的群集以及主机上运行的角色数量。Cloudera Manager 提供用于管理参与主机生命周期的操作以及添加和删除主机的操作。Cloudera Management Service Host Monitor 角色执行运行状况检查并收集主机度量,以使您可以监控主机的运行状况和性能。

资源管理

资源管理可以通过在群集资源上定义不同服务的影响来帮助确保可预测行为。资源管理功能的目标在于:资源管理可以通过在群集资源上定义不同服务的影响来帮助确保可预测行为。资源管理功能的目标在于 : 

  1. 保证在合理的时间框架内完成关键工作保证在合理的时间框架内完成关键工作。
  2. 支持用户组之间基于每组资源公平分配的合理群集计划。
  3. 防止用户剥夺其他用户访问群集的权限。

使用 Cloudera Manager 5 时,可以通过单个 Static Service Pools(静态服务池)向导 配置使用 cgroups 静态分配资源功能。您可以为服务分配一个总资源的百分比,然后向导可以配置 cgroups。

Static Service Pools(静态服务池)将您集群中的服务与其他服务隔离,使一个服务上的负载对其他服务产生的影响有限。服务已分配总资源 — CPU、内存和 I/O 权重 — 的静态百分比,不与其他服务共享。配置静态服务池时,Cloudera Manager 为服务的工作者角色计算建议的内存、CPU 和 I/O 配置,与各个服务所分配的百分比相对应。静态服务池为群集中每个角色组实施,使用 Linux 控制组 (cgroups) 和协同的内存限制(例如 Java 最大堆大小)。静态服务池可用于控制对资源的访问,通过 HBase、HDFS、Impala、MapReduce、Solr、Spark、YARN 和 add-on 服务。默认情况下不启用静态服务池。

例如,下图显示了为 HBase、HDFS、Impala 和 YARN 静态服务池分配的群集资源百分比分别为 20%、30%、20% 和 30%。例如,下图显示了为 HBase、HDFS、Impala 和 YARN 静态服务池分配的群集资源百分比分别为 20%、30%、20% 和 30%。

Cloudera Manager 使您能够使用动态资源池管理用于将已静态分配至 YARN 和 Impala 的资源进行动态分区的机制。

根据所是使用的 CDH 版本的不同,Cloudera Manager 中的动态资源池支持以下资源管理 (RM) 方案 : 

  1. YARN(CDH5)- YARN 管理内核、内存、正在运行的应用程序以及每个池的调度策略。在上图中,已为 YARN 定义三个动态资源池 - Dev、Product 和 Mktg,其权重分别为 3、2 和 1。如果已启动某一应用程序且将其分配到 Product 池且其他应用程序使用 Dev 和 Mktg 池,则 Product r资源池将接收总群集资源的 30% x 2/6(或 10%)。如果无应用程序使用 Dev 和 Mktg 池,则会为 YARN 产品池分配群集资源的 30%。
  2. (CDH 5)YARN 和 Impala 集成式 RM - YARN 管理运行 Impala 队列的池内存,Impala 限制每个池中正在运行和排队的队列数。

  3. 注意 : 在该版本与 CDH 5.3 的比较中,该版本的这个介绍省略了一些东西,省略的东西不在叙述,给一个链接吧 : http://www.cloudera.com/content/www/zh-CN/documentation/enterprise/5-3-x/topics/cm_intro_primer.html#concept_kp2_gqg_pl_unique_1

用户管理

可通过用户帐户控制 Cloudera Manager 功能的访问权限。用户帐户标识对用户进行身份验证的方式,并确定为用户授予的权限。

Cloudera Manager 提供了多种机制对用户进行身份验证。您可以将 Cloudera Manager 配置为对 Cloudera Manager 数据库或 外部身份验证服务进行用户验证。外部身份验证服务可以是 LDAP 服务器(Active Directory 或 OpenLDAP 兼容目录),也可以指定其他外部服务。Cloudera Manager 还支持使用安全声明标记语言 (SAML) 启用单点登录。

可以向用户帐户分配以下角色之一 : 

  1. 审核员 - 在 Cloudera Manager 中查看数据和审核事件。
  2. 只读 - 查看监控信息和数据。
  3. 受限操作员 - 解除主机授权以及查看服务和监控信息与数据。
  4. 操作员 - 解除主机和角色授权以及查看服务和监控信息与数据。
  5. 配置员 - 执行上述操作员操作,配置服务,进入和退出维护模式以及管理仪表板。
  6. 群集管理员 - 查看所有数据并执行除以下操作之外的所有操作 : 管理 Cloudera Navigator,执行复制和快照操作,查看审核事件,管理用户帐户以及配置外部身份验证。
  7. BDR 管理员 - 查看服务和监控信息与数据,以及执行复制和快照操作。
  8. Navigator 管理员 - 查看服务和监控信息与数据,查看审核事件以及管理 Cloudera Navigator。
  9. 用户管理员 - 管理用户帐户和配置外部身份验证,以及查看服务和监控信息与数据。
  10. 完全权限管理员 - 查看所有数据并执行所有操作,包括重新配置和重启服务以及管理其他用户。

 有关每个 Cloudera Manager 用户角色的关联特权,请参阅 Cloudera Manager 用户角色

安全管理

Cloudera Manager 致力于整合多个项目中的安全配置。

Authentication(身份验证)

与在其他系统中一样,Hadoop 中身份验证的目的仅仅是证明用户或服务确实是他或她所声称的用户或服务。

通常,企业中的身份验证通过单个分布式系统(例如,轻型目录访问协议 (LDAP) 目录)进行管理。LDAP 身份验证包含由各种存储系统提供支持的简单用户名/密码服务。

一个常见的企业级身份验证系统是 Kerberos。Kerberos 提供强大的安全优势,包括呈现被截获的攻击者无法使用的身份验证数据包。它不再需要通过网络以明文形式发送用户的凭据,几乎消除了模拟威胁。

Hadoop 生态系统的许多组件会汇总到一起来使用 Kerberos 身份验证并提供用于在 LDAP 或 AD 中管理和存储凭据的选项。例如,Microsoft 的 Active Directory (AD) 是一个也提供 Kerberos 身份验证来增强安全性的 LDAP 目录。

Authorization(授权)

授权是指哪些人对给定资源或服务具有哪些访问权限或控制权。由于 Hadoop 将多个不同的、以前单独存在的 IT 系统的功能整合为一个存储并处理组织内的所有数据的企业数据集线器,它需要具有不同粒度的多个授权控制。在这种情况下,Hadoop 管理工具将通过以下方法简化设置和维护 : 

  1. 将所有用户关联到组,可以在现有 LDAP 或 AD 目录中指定组。将所有用户关联到组,可以在现有 LDAP 或 AD 目录中指定组。
  2. 为类似交互方法提供基于角色的访问控制,例如批处理和交互式 SQL 查询。例如,Apache Sentry 权限应用于 Hive(HiveServer2))和 Impala。

CDH 当前提供以下形式的访问控制CDH 当前提供以下形式的访问控制 : 

  1. 适用于目录和文件的传统 POSIX 样式的权限,其中每个目录和文件都会被分配单个所有者和组。每个分配都具有一组基本的可用权限;文件权限只是读取、写入和执行,而目录有附加权限可确定对子目录的访问权限。
  2. 适用于 HDFS 的扩展的 访问控制列表 (ACL),通过允许您为特定命名用户和/或命名组设置不同权限来为 HDFS 文件提供细化权限控制。
  3. Apache HBase 使用 ACL 来按列、列族和列族限定符授权各种操作 (READ, WRITE, CREATE, ADMIN)。将为用户组授予和吊销 HBase ACL。
  4. 使用 Apache Sentry 基于角色进行访问控制。

Encryption(加密)

加密的目标是确保仅授权用户可以查看、使用或参与数据集。这些安全控制对网络上的最终用户、管理员和其他恶意角色额外增加了一层保护来防止潜在威胁。可以在 Hadoop 中的许多级别应用数据 : 

操作系统文件系统级别 - 可以在 Linux 操作系统文件系统级别采用加密以涵盖卷中的所有文件。这种方法的一个示例是 Cloudera Navigator 加密(以前称为 Gazzang zNcrypt),它适用于获得 Cloudera Navigator 许可的 Cloudera 客户。Navigator 加密在 Linux 卷级别操作,以便它可以对 HDFS 内部和外部的群集数据进行加密,例如临时/溢出文件、配置文件和元数据数据库(仅适用于与 CDH 群集相关的数据)。Navigator 加密必须与 Cloudera Navigator Key Trustee Server(以前称为 Gazzang zTrustee)一起使用。

CDH 的一些组件,比如 Impala,MapReduce,YARN,或者 HBase ,也有能力去加密 HDFS 外的本地文件系统。为了启用这个特性,请参阅 Configuring Encryption for Data Spills

网络级别 - 只能在数据在网络上传输之前采用加密方法对数据进行加密,一旦收到数据就会对其进行解密。在 Hadoop 中,这意味着涵盖从客户端用户界面发送的数据以及服务对服务通信(如远程过程调用 (RPC))。此保护使用业界标准协议(如 SSL/TLS)。

注意 :

Cloudera Manager 和 CDH 组件支持 TLS 1.0,TLS 1.1 或者 TLS 1.2,但是不支持 SSL 3.0。继续引用 SSL 只因为它广泛使用技术术语。

HDFS 级别 - 通过 HDFS 客户端软件应用加密。HDFS 数据静态加密在 HDFS 文件夹级别操作,可实现仅对需要加密的 HDFS 文件夹应用加密。无法对 HDFS 外部的任何数据进行加密。要确保密钥存储可靠(以便不会丢失数据),应使用 Navigator Key Trustee,而默认 Java KeyStore 可用于测试目的。

Cloudera Manager Service

Cloudera Management Service 可作为一组角色实施各种管理功能 : 

  1. Activity Monitor - 收集有关 MapReduce 服务运行的活动的信息。默认情况下未添加此角色。
  2. Host Monitor - 收集有关主机的运行状况和指标信息
  3. Service Monitor - 收集有关服务的运行状况和指标信息以及 YARN 和 Impala 服务中的活动信息
  4. Event Server - 聚合 relevant Hadoop 事件并将其用于警报和搜索
  5. Alert Publisher - 为特定类型的事件生成和提供警报
  6. Reports Manager - 生成报告,它提供用户、用户组和目录的磁盘使用率的历史视图,用户和 YARN 池的处理活动,以及 HBase 表和命名空间。此角色未在 Cloudera Express 中添加。

此外,对于特定版本的 Cloudera Enterprise 许可证,Cloudera Management Service 还为 Cloudera Navigator 提供 Navigator Audit Server 和 Navigator Metadata Server 角色。

健康测试

Cloudera Manager 可以通过 运行状况检查 监控群集上运行的服务、角色和主机的运行状况。Cloudera Management Service 还可提供其角色的运行状况检查。默认情况下,基于角色的运行状况检查已启用。例如,简单的运行状况检查为每个 NameNode 数据目录中是否具有足够的磁盘空间。较复杂的运行状况检查可以评估是否已将 HDFS 的最后一个检查点与阈值比较或者是否已将 DataNode 连接至 NameNode。部分运行状况检查还可以聚合其他运行状况检查:在诸如 HDFS 的分布式系统中,一般具有几个向下的 DataNode(假定您拥有几十个主机),因此,我们可以设置将整个向下服务着色的主机百分比数阈值。

运行状况检查将返回以下三个值之一 : 良好存在隐患 和 不良。如果检查结果低于警告阈值,则检查将返回“存在隐患”。如果检查结果低于临界阈值,则检查将返回“不良”。服务或角色实例的总运行状况为其运行状况检查的汇总。如果任何运行状况检查是“存在隐患”(但无“不良”),则角色或服务的运行状况为“存在隐患”;如果任何运行状况检查为“不良”,则服务或角色的运行状况为“不良”。

在 Cloudera Manager 管理控制台中,运行状况检查结果将按以下颜色显示 : 良好存在隐患不良

一个常见问题是监控功能是否能够与配置分开。监控的目标之一是无需执行额外配置和安装其他工具(例如,Nagios)即可启用该功能。Cloudera Manager 具备一个深度配置模型,能够确定要监控的目录、要使用的端口以及这些端口要使用的凭据。这种紧密结合意味着安装 Cloudera Manager 时即启用所有监控功能。

度量收集和显示

要执行监控,Service Monitor 和 Host Monitor 会收集度量。度量是一个数值,与名称(例如,“CPU 秒数”)、其适用的实体(“host17”)和时间戳相关联。大多数度量收集由 Agent 执行。Agent 与受到监督的进程通信,请求度量,然后将它们转发到 Service Monitor。在大多数情况下,此操作每分钟执行一次。

少数几个特殊度量由 Service Monitor 收集。例如,Service Monitor 托管 HDFS canary(尝试以固定时间间隔从 HDFS 读取、写入和删除文件),并衡量是否成功以及所用时间。收到度量后,便会对它们进行汇总和存储。

使用 Cloudera Manager Admin Console 中的“图表”页面,您可以查询和查看所收集的度量。图表显示时间系列,它们是特定实体度量数据点的数据流。每个度量数据点都包含一个时间戳和该时间戳处该度量的值。

其中一些度量(例如,total_cpu_seconds)是计数器,查询它们的正确方式是收集它们在一段时间内的速率,这正是大量度量查询包含 dt0 函数的原因。例如,dt0(total_cpu_seconds)。(dt0 语法用于提醒派生项。0 表示单调递增计数器的速率永远不能是负值。)

事件,警报,和 触发器

事件 - 是一个记录,表示发生了您感兴趣的事情 - 服务的运行状况已更改状态、已记录日志消息(具备相应的严重性),等等。默认启用和配置许多事件。

警报 - 是被认为特别值得注意的事件,由选定事件触发。警报出现在事件列表中时,将带有一个  标记。您可以配置 Alert Publisher,以通过电子邮件或 SNMP 补漏将警报通知发送给补漏接收人。

触发器 - 是一种语句,它用于指定当满足服务、角色、角色配置组或主机的一个或多个指定条件时需要执行的操作。这些条件以 tsquery 语句表示,并且需要执行的操作是将服务、角色、角色配置组或主机的运行状况更改为存在隐患(黄色)或错误(红色)。

EMC DSSD D5 集成概述

EMC DSSD D5 提供了基于flash媒体上高速的、低延迟的存储解决方案。它已经优化用于 Cloudera CDH 中的 DataNodes 作为存储。DataNode 主机使用 PCle card 接口直接连接 DSSD D5。在 CDH 群集中,只有 DataNode 使用 DSSD D5 作为存储,其它的主机还是使用标准的硬盘。

为了管理使用 DSSD D5 作为存储的群集,在 Cloudera Manager 中启用 DSSD 模式。所有其它 Hadoop 组件都正常运行。当启用这个模式,Cloudera Manager 只能够管理使用 DSS5 作为 DataNode 存储的群集。你不能混合群集0类型(一个群集使用 DSS5 D5 DataNodes,另一个集群使用标准的 DataNodes)。所有的 DataNodes 必须连接至 DSSD D5,你不能够在一个群集中混合 DataNode 类型。

你可以通过定义每个 DSSD D5 作为一个 “Rack(机架)” 来连接多个 DSSD D5 实例设备到一个单个的群集中。请看 Configuring Multiple DSSD D5 Appliances in a Cluster