CDH6官方文档中文系列(2)----Cloudera安装指南(安装前)

Cloudera安装指南

最近在学习cdh6的官方文档,网上也比较难找到中文的文档。
其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习了解,并分享出来和大家一起学习。
中文内容是本人的渣渣英文水平结合有道词典,谷歌翻译的结果,文中部分词语可能翻译的并不准确,希望大家多多提出意见,共同进步。
cdh6的官方中文文档系列长期更新,最后目标整理成gitbook,同大家交流学习。
最后,如果你觉得本文对你有用,希望点个赞给作者一点鼓励哈。

与其感慨路难行不如马上上路,诸位道友,共同学习,加油!-------天南第一剑修

文章目录

  • Cloudera安装指南
    • 官方文档
    • 安装前
      • CM的存储空间规划
        • Cloudera Manager Server
          • Cloudera Manager Server
        • Cloudera Management Service
          • Cloudera Management Service-Activity Monitor Configuration
          • Cloudera Management Service - Service Monitor Configuration
          • Cloudera Management Service - Host Monitor
          • Cloudera Management Service - Event Server
          • Cloudera Management Service - Reports Manager
        • Cloudera Navigator
          • Cloudera Navigator - Navigator Audit Server
          • Cloudera Navigator - Navigator Metadata Server
          • 一般性能记录
        • 使用Cloudera Manager进行集群生命周期管理
          • Parcel Lifecycle Management
          • Management Service Lifecycle - Space Reclamation Tasks
          • 日志文件
          • 结论
      • 配置网络名称
      • 禁用防火墙
      • 设置SELinux模式
      • 启用NTP服务
      • 在Hue主机上安装Python 2.7(仅仅在RHEL 6兼容的系统)
        • RHEL 6
        • CentOS 6
        • Oracle Linux 6
      • Impala 的需求
        • 产品兼容性矩阵
        • 支持的操作系统
        • Hive元数据和相关配置
        • Java依赖
        • 网络配置要求
        • 硬件需求
          • 优化连接性能的硬件要求
        • 用户账号需求
      • CDH基于包的安装(Package-based)所需的权限
        • 需要的权限
          • 基于包的CDH安装所需的权限
        • 由CM运行的`sudo`命令
      • 端口
        • Cloudera Manager和Cloudera Navigator使用的端口
          • CM和Cloudera Navigator使用的端口
          • 点对点包裹分发中使用的端口
        • Cloudera Navigator Encryption使用的端口
        • CDH组件使用的端口
        • DistCp使用的端口
        • 第三方组件使用的端口
      • 推荐的集群主机和角色分配
        • CDH集群主机和角色分配
          • 3 - 10个工作主机且集群没有高可用性
          • 3 - 20个工作主机且集群开启高可用性
          • 20 - 80个Worker主机且集群启用高可用性的
          • 80 - 200个Worker主机具有高可用性
          • 200 - 500个Worker主机具有高可用性
          • 500 -1000个Worker主机具有高可用性
        • 为主要受信者服务器和主要受信者KMS分配主机
      • 自定义安装解决方案
        • 介绍Parcels
        • 理解包管理
          • 包管理工具
          • 包仓库
            • 存储库配置文件
            • 库清单
        • 配置本地Parcel 存储库
          • 使用内部托管的远程包存储库
            • 安装Web服务器
            • 下载并发布包裹存储库
            • 配置Cloudera Manager以使用内部远程包裹存储库
          • 使用本地包存储库
        • 配置本地Package 存储库
          • 创建永久的内部存储库
            • 安装Web服务器
            • 下载并发布包存储库
          • 创建临时内部存储库
          • 配置主机以使用内部存储库
        • 手动安装Cloudera软件包
            • 安装Cloudera Manager包
            • 手动安装Cloudera Manager Agent包
          • 手动安装CDH包
        • 创建集群主机的虚拟映像
          • 创建预部署的Cloudera管理器主机
          • 实例化一个Cloudera管理器映像
          • 创建预部署的工作程序主机
          • 实例化工作主机
        • 配置自定义Java目录位置
        • 使用Cloudera管理器模板创建CDH集群
          • 导出集群配置
          • 准备新集群
          • 创建模板
          • 将模板导入到新集群
          • 样本Python代码
            • Python导出示例:
            • Python导入示例:
      • CM中的服务依赖
        • 6.2版本服务依赖
        • 6.1版本服务依赖关系
        • 6.0版本服务依赖关系
        • Cloudera Data Science Workbench 1.5.0服务依赖关系
        • Spark 2 on YARN 的服务依赖
        • Cloudera Data Science Workbench 1.5.0服务依赖关系
        • Spark 2 on YARN 的服务依赖

官方文档

本指南提供了在生产环境中安装Cloudera软件(包括Cloudera Manager、CDH和其他托管服务)的指导。

对于非生产环境(例如测试和概念验证用例),请参阅概念验证安装指南,了解简化的(但有限的)安装过程。

本指南包括以下部分:(本篇为安装前)

  • 安装前
  • 安装CM和CDH
  • 安装Navigator Data Management
  • 安装Navigator Encryption
  • 安装后
  • 解决安装问题
  • 卸载Cloudera软件

安装前

在安装Cloudera Manager、CDH和其他托管服务之前:

  • 参考Cloudera Enterprise 6的需求和支持的版本。
  • 参考Cloudera Manager 6发布说明和CDH 6发布说明。

有关规划、最佳实践和建议,请查看您的环境的参考架构。例如,对于现场部署,请查看 Cloudera Enterprise Reference Architecture for Bare Metal Deployments (PDF)。

以下是您在开始安装之前应该注意的其他事项:

  • CM的存储空间规划
  • 配置网络名称
  • 禁用防火墙
  • 设置SELinux模式
  • 启用NTP服务
  • 在Hue主机上安装Python 2.7
  • Impala的需求
  • 需要的权限分配
  • 端口
  • 推荐的角色分配
  • 自定义安装解决方案
  • CM中的服务依赖

CM的存储空间规划

注意:这个页面包含对cdh5组件或特性的引用,这些组件或特性已经从cdh6中删除。这些引用只适用于使用Cloudera Manager 6管理cdh5集群的情况。有关更多信息,请参见移除的项目。

最小角色需求:完全管理员

Cloudera Manager在许多后台进程中跟踪服务、作业和应用程序的指标。所有这些指标都需要存储空间。根据组织的大小,这个存储可以是本地的,也可以是远程的,基于磁盘的,或者在数据库中,由您管理,或者由位于另一个位置的另一个团队管理。

大多数系统管理员都知道诸如/var/log/这样的常用位置,并且知道这些位置需要有足够的空间。本主题帮助您规划Cloudera Manager Server 和 Cloudera Management Service用于存储指标和数据的存储需求和数据存储位置。

如果没有合理规划 Cloudera Manager Server和Cloudera Management Service的所有组件的存储需求,可能会对集群产生以下负面影响:

  • 集群可能无法保留历史操作数据以满足内部需求。
  • 集群可能会丢失关键的审计信息,这些信息没有收集或保留到所需的时间长度。
  • 管理员可能无法研究过去的事件或健康状况。
  • 管理员在以后需要引用或报告历史MR1、纱线或Impala使用数据时,可能没有这些数据。
  • 在度量收集和图表中可能存在差距。
  • 由于将存储位置填满到100%的容量,集群可能会发生数据丢失。
  • 此类事件的影响可以影响许多其他组件。

这里的主题是,必须提前设计好数据存储需求的架构。您必须将每个主机的关键数据存储位置告知操作人员,以便他们能够充分提供您的基础设施并对其进行适当的备份。确保将发现的需求记录在您的内部构建文档和运行手册中。

本主题描述本地磁盘存储和RDBMS存储。这样区别一是为了存储计划,也是为了通知从一个主机到另一个主机的角色迁移、准备备份和其他生命周期管理事件。

下表提供了关于每个Cloudera管理服务的详细信息,使Cloudera Manager管理员能够做出适当的存储和生命周期规划决策。

Cloudera Manager Server

Cloudera Manager Server
配置Topic Cloudera Manager Server 配置
默认存储位置 **RDBMS:**任何受支持的RDBMS。有关更多信息,请参见数据库需求。
**Disk:**Cloudera Manager Server 本地数据存储目录 (command_storage_path) 在配置Cloudera Manager Server运行的主机上。Cloudera Manager使用这个本地路径存储数据,包括命令结果文件。关键配置不存储在此位置。
默认位置: /var/lib/cloudera-scm-server/
存储配置默认值, 最小值或最大值 没有与此实体相关的直接存储缺省值。
如何控制数据保留或大小 Cloudera Manager Server数据库的大小取决于托管主机的数量和集群中运行的离散命令的数量。要在Cloudera Manager管理控制台中配置保留命令结果的大小,请选择管理> 设置并编辑以下属性:
Command Eviction Age
从数据库中清除非活动命令的时间长度。默认是两年。
规模、计划和最佳实践 Cloudera Manager Server数据库是Cloudera Manager部署中最重要的配置存储。这个数据库包含集群、服务、角色和其他必要信息的配置,这些信息定义了Cloudera Manager及其托管主机的部署。确保对Cloudera Manager Server数据库执行常规的、经过验证的、远程存储的备份。

Cloudera Management Service

Cloudera Management Service-Activity Monitor Configuration
配置Topic Activity Monitor
默认存储位置 任何受支持的RDBMS。有关更多信息,请参见数据库需求。
存储配置默认值/最小值/最大值 默认: 14天的MapReduce (MRv1)工作/任务
如何控制数据保留或大小 您可以通过配置要保留的数据的天数或小时数来控制活动监视存储使用情况。清除旧的数据。要在Cloudera Manager管理控制台配置数据保留:
1. 进入Cloudera Management Service
2. 点击配置
选项
3. 选着范围> Activity Monitor.
4. 选择类别 > 主要.
5. 找到以下属性或在搜索框中输入属性名称进行搜索:
在此时限清除活动数据
在这种活动监视器中,清除关于MapReduce作业的数据,并在数据到达这个时间(以小时为单位)时聚合活动。默认情况下,活动监视器保存关于活动的数据336小时(14天)。
在此时限清除尝试数据
在活动监视器中,当数据在几小时内到达这个年龄时,清除关于MapReduce尝试的数据。因为尝试数据可能会消耗大量的数据库空间,所以您可能希望比活动数据更频繁地清除它。默认情况下,Activity Monitor保存尝试数据的时间为336小时(14天)。.
在此时限清除 MapReduce 服务数据
将过去的服务级别数据保存在活动监视器数据库中的小时数,例如正在运行的总slots。默认值是保存数据336小时(14天)。
6. 输入更改原因,然后单击保存更改提交更改。
Sizing(?)、计划和最佳实践 活动监视器只监视MapReduce作业,而不监视YARN应用程序。如果您不再在集群中使用MapReduce (MRv1), Cloudera Manager或CDH不需要活动监视器。
MapReduce活动需要14天的存储空间量可能会有很大的差异,这直接取决于集群的大小和使用MapReduce的活动的级别。在确定集群中的MapReduce活动的“稳定状态”和“突发状态”时,可能需要调整和重新调整存储数量。
例如,考虑以下测试集群和使用:
一个模拟的1000主机集群,每个主机有32个slots。
每个活动(作业)尝试200次(任务)的MapReduce作业
集群数据量观测:
每次尝试需要10分钟完成。
这种使用导致每天大约有2万个任务,总尝试次数大约为500万次。
在7天的保存期内,此活动监视器数据库需要200 GB。
Cloudera Management Service - Service Monitor Configuration
配合Topic 服务监控配置
默认存储位置 在配置运行了服务监视器角色的主机的/var/lib/cloudera-service-monitor/ 目录
存储配置默认值/最小值/最大值 10 GiB服务时间序列存储
1 GiB Impala查询存储
1 GiB YARN 应用存储
总计: ~最小12 GiB (上不封顶)
如何控制数据保留或大小 服务监视器数据增长是通过配置它可以使用的最大存储空间来控制的。
要在Cloudera Manager管理控制台配置数据保留:
1. 选择Cloudera Management Service.
2. 点击配置
3. 选择范围> Service Monitor or Cloudera Management Service (Service-Wide)
4. 选择类别 > 主要
5. 定位propertyName属性,或者在搜索框中键入它的名称来搜索它。
时间序列的存储
用于存储时间序列和健康数据的磁盘空间的大致数量。当存储达到最大大小时,它会删除旧数据,为新数据腾出空间。磁盘使用量是近似的,因为存储只有在达到限制时才开始删除数据。
请注意Cloudera Manager在许多不同的数据粒度上存储时间序列数据,这些粒度具有不同的有效保留时间。服务监视器不仅将度量数据存储为原始数据点,还将其存储为10分钟、每小时、6小时、每天和每周的汇总数据点。原始数据消耗大部分分配的存储空间,而每周总结消耗最少。原始数据保留的时间最短,而每周总结点不太可能被删除。
选择Cloudera Management Service > 图表库 获取有关如何在服务监视器中使用空间的信息。这些预构建的图表还显示了关于每个数据粒度所保留的数据量和时间窗口的信息。
Impala 存储
用于存储Impala查询数据的磁盘空间的大致数量。当存储达到最大大小时,它会删除旧数据,为新查询腾出空间。磁盘使用量是近似的,因为存储只有在达到限制时才开始删除数据。
YARN Storage
用于存储YARN应用程序数据的磁盘空间的大致数量。当存储达到最大大小时,它会删除旧数据,为新应用程序腾出空间。磁盘使用量是接近的,因为Cloudera管理器只在数据达到限制时才开始删除数据。
6. 输入更改原因,然后单击保存更改提交更改。
Sizing(?)、计划和最佳实践 服务监视器收集关于集群中配置的角色和服务的指标,并运行活动健康测试。这些健康测试不考虑空闲期和使用期,因为它们总是相关的。服务监视器收集指标和健康测试结果,而不考虑集群中的活动水平。即使在空闲集群中,此数据也会继续增长。
Cloudera Management Service - Host Monitor
配置Topic 主机监控配置
默认存储位置 在配置运行了监视器角色的主机的/var/lib/cloudera-host-monitor/ 目录
存储配置默认值/最小值/最大值 默认(和最低):10 GiB主机时间序列存储
如何控制数据保留或大小 主机监视器数据增长是通过配置它可以使用的最大存储空间来控制的。请参见监视数据数据存储。
要在Cloudera Manager管理控制台中配置这些数据保留配置属性:
1. 进入 Cloudera Management Service.
2. 点击配置.
3. 选择范围 > Host Monitor or Cloudera Management Service (Service-Wide).
4. 选择类别 > 主要.
5. 定位每个属性或在搜索框中键入其名称进行搜索.
时间序列存储
用于存储时间序列和健康数据的磁盘空间的大致数量。当存储达到最大大小时,它会删除旧数据,为新数据腾出空间。磁盘使用量是近似的,因为存储只有在达到限制时才开始删除数据。
请注意Cloudera Manager在许多不同的数据粒度上存储时间序列数据,这些粒度具有不同的有效保留时间。主机监控器不仅将度量数据作为原始数据点存储,还将其作为十分钟、一小时、六小时、一天和一周增量的摘要存储。原始数据消耗大部分分配的存储空间,而每周总结消耗最少。原始数据保留的时间最短,而每周总结点不太可能被删除。
查看Cloudera Management Service> 图表库选项卡,了解主机监视器内的空间使用情况。这些预构建的图表还显示了关于保留的数据量和每个数据粒度所覆盖的时间窗口的信息.
6. 输入更改原因,然后单击保存更改提交更改。
Sizing(?)、计划和最佳实践 主机监视器收集有关感兴趣的主机级项目的指标(例如:磁盘空间使用、RAM、CPU使用、交换等),并通知主机健康测试。无论集群中的活动水平如何,主机监视器都会收集度量指标和健康测试结果。即使在空闲集群中,这些数据也继续以相当线性的方式增长。
Cloudera Management Service - Event Server
配置Topic 事件服务器配置
默认存储位置 在配置运行事件服务器角色的主机的/var/lib/cloudera-scm-eventserver/目录下
存储配置默认值/最小值/最大值 保留5000000个事件
如何控制数据保留或大小 事件服务器使用的存储空间大小取决于它可以保留多少个离散事件。要在Cloudera Manager管理控制台中配置数据保留:
1. 进入 Cloudera Management Service.
2. 点击配置.
3. 选择范围 > Event Server or Cloudera Management Service (Service-Wide).
4. 选择类别 > 主要.
5. 编辑下列属性:
在 Event Server 中存储的最大事件数
事件服务器存储的最大大小(以事件为单位)。当超过此大小时,将从最早的事件开始删除事件,直到存储的大小低于此阈值
6. 输入更改原因,然后单击保存更改提交更改。
Sizing(?)、计划和最佳实践 事件服务器托管Lucene索引收集您的集群内发生的相关事件,如健康测试的结果,记录事件日志条目匹配时创建一组规则识别感兴趣的消息,使它们可用于搜索、过滤和额外的行动。您可以在Cloudera Manager管理控制台的诊断> 事件选项卡上查看和筛选事件。您还可以使用Cloudera Manager API来轮询这些数据。
注意:Cloudera Management Service role Alert发布者通过定期轮询事件服务器来获取其工作的所有内容,以查找标记为使用SNMP或SMTP发送的条目。本文不讨论警报发布程序,因为它本身没有值得注意的存储需求。
Cloudera Management Service - Reports Manager
配置 Topic 报表管理器配置
默认存储位置 **RDBMS:**任何受支持的RDBMS。有关更多信息,请参见数据库需求。
**Disk:**在部署运行报表管理角色的主机的/var/lib/cloudera-scm-headlamp/ 目录下
存储配置默认值/最小值/最大值 **RDBMS:**没有可配置的参数来直接控制这个数据集的大小。
**Disk:**没有可配置的参数来直接控制这个数据集的大小。存储利用率不仅取决于HDFS fsimage的大小,还取决于HDFS文件路径的复杂性。文件路径越长,空间利用率越高。
如何控制数据保留或大小 报表管理器在两个主要位置使用空间:报表管理器主机及其支持数据库。Cloudera建议将数据库放在与Reports Manager主机分开的主机上,以实现进程隔离和性能。
Sizing(?)、计划和最佳实践 Reports Manager从NameNode下载fsimage(默认情况下每60分钟下载一次),并将其存储在本地,以便对其执行操作,包括索引HDFS文件系统结构。更多的文件和目录会导致更大的fsimage,这会消耗更多的磁盘空间。
报表管理器无法控制fsimage的大小。如果总的HDFS使用趋势明显上升,或者在HDFS中添加过长的路径,那么可能需要重新访问并调整分配给Reports Manager的本地存储数量。定期监视、检查和调整本地存储分配。

Cloudera Navigator

Cloudera Navigator - Navigator Audit Server
配置Topic Navigator 审计服务配置
默认存储位置 任何受支持的RDBMS。有关更多信息,请参见数据库需求。
存储配置默认值/最小值/最大值 默认:保留90天
如何控制数据保留或最小/最大 Navigator审计服务器的存储使用情况是通过配置它可以保留多少天的数据来控制的。清除所有旧数据。要在Cloudera Manager管理控制台配置数据保留:
1. 进入 Cloudera Management Service.
2. 点击配置.
3. 选择范围 > Navigator Audit Server or Cloudera Management Service(Service-Wide).
4. 选择类别 > 主要.
5. 编辑Navigator Audit Server Data Expiration Period属性:
Navigator审计服务器数据过期时间
在Navigator审计服务器中,当数据在几天内到达这个年龄时,清除各种可审计服务的审计数据。默认情况下,Navigator审计服务器保存有关审计的数据90天。
6. 输入更改原因,然后单击保存更改提交更改。
Sizing(?)、计划和最佳实践 Navigator审计服务器数据库的大小直接取决于集群s审计服务生成的审计事件的数量。通常情况下,HDFS审计的数量超过其他审计的数量(所有其他组件,如MRv1、Hive和Impala,都从HDFS中读取,这会生成额外的审计事件)。离散HDFS审计事件的平均大小为~1 KB。
对于一个由50台主机组成的繁忙集群,每小时生成约100K个审计事件,Navigator审计服务器数据库每天将消耗约2.5 GB。要在该级别上保留90天的审计,计划数据库大小约为250gb。如果其他配置的集群服务生成的数据量与HDFS审计大致相同,则导航器审计服务器数据库计划为90天的数据需要大约500 GB的存储空间。.
Notes:
单独的hive和impala查询本身可以非常大。因为查询本身是审计事件的一部分,所以审计事件消耗的空间与查询的长度成比例。
随着集群活动的增加,所需的空间量也会增加。在某些情况下,Navigator审计服务器数据库在90天的审计事件中可能超过1 TB。需要定期对集群进行基准测试并进行相应的调整。
要将Cloudera Navigator版本匹配到Cloudera Manager版本, see Product Compatibility Matrix for Cloudera Navigator.
Cloudera Navigator - Navigator Metadata Server
Configuration Topic Navigator Metadata Server Configuration
默认存储位置 **RDBMS:**任何支持的关系型数据库,更多信息, see Database Requirements.
**Disk:**部署运行了Navigator 元数据服务角色的主机的/var/lib/cloudera-scm-navigator/ 目录下。
存储配置默认值/最小值/最大值 **RDBMS:**没有公开的默认值或配置可直接筛选或清除此数据集的大小。
**Disk:**默认情况下不存在影响此位置大小的配置。可以使用Navigator元数据服务器存储目录属性更改位置本身。这个位置的数据大小取决于系统中的元数据量(HDFS fsimage大小、Hive Metastore大小)和系统上的活动(运行MapReduce作业的数量、执行Hive查询的数量,等等)。
如何控制数值,修改最大最小值 **RDBMS:**Navigator元数据服务器数据库应该仔细调整,以支持大量元数据。
Disk:Navigator元数据服务器索引(一个嵌入式Solr实例)会在Navigator Metadata Server Storage Dir属性指定的位置消耗大量磁盘空间。正在进行的维护任务包括清除系统中的元数据。正在进行的维护任务包括清除系统中的元数据。
Sizing(?)、计划和最佳实践 **内存:**参阅 Navigator Metadata Server Tuning.
**RDBMS:**数据库用于存储策略和授权数据。数据集比较小,但是这个数据库也在Solr模式升级期间使用,在Solr中提取Solr文档并再次插入到Solr中。这与上面的用例有相同的空间需求,但是空间仅在产品升级期间临时使用。
使用 Product Compatibility Matrix for Cloudera Navigator 对应 Cloudera Navigator 和 Cloudera Manager 的版本.
**Disk:**这个文件系统位置包含从托管集群提取的所有元数据。数据存储在Solr中,所以这是Solr存储索引和文档的位置。根据集群的大小,这些数据可能占用几十gb的空间。一个指导方针是查看HDFS fsimage的大小,并将其分配为初始大小的两到三倍。这里的数据是增量的,并且随着在集群上执行活动而继续增长。它的增长速度可以达到每天几十兆字节.
一般性能记录

在可能的情况下:
对于使用RDBMS的实体,将数据库安装在与服务分开的主机上,并合并在尽可能少的服务器上使用数据库的角色。
为RDBMS或数据存储数据目录提供专用的主轴,以避免与其他读/写活动争用磁盘。

使用Cloudera Manager进行集群生命周期管理

使用parcels包提供CDH和其他组件的Cloudera管理集群需要在以下位置有足够的磁盘空间:

Parcel Lifecycle Management
Parcel的生命周期路径(默认) Notes
本地parcel仓库地址(/opt/cloudera/parcel-repo) 此路径仅存在于运行Cloudera Manager服务器(cloudera -scm- server)的主机上。Cloudera Manager服务器在从任何外部存储库获取包时,将所有新包放置在这个位置。然后,当管理员使用Cloudera Manager管理控制台或Cloudera Manager API分发包裹时,指示Cloudera Manager代理从这个位置获取包裹。
Sizing 和计划
默认位置是/opt/cloudera/ parcelr -repo,但是您可以在cloudera Manager服务器运行的主机上配置另一个本地文件系统位置。参见包的配置设置。
提供足够的空间来保存从所有配置的远程包存储库url下载的所有包(请参阅包配置设置)。Cloudera Manager部署,它管理多个集群,为所有集群存储所有适用的包。
parcels包是为每个操作系统提供的,因此要注意异类集群(在集群中表示的不同操作系统)比同构操作系统的集群需要更多的空间。
例如,一个具有RHEL6.x和7.x的集群,主机必须在本地parcels包存储库路径中保存-el6和-el7包,这需要两倍的空间。
生命周期管理和最佳实践
从Cloudera Manager管理控制台删除任何不再使用的包(不要从命令行手动删除它们),以恢复本地包存储库路径中的磁盘空间,并同时跨所有托管包的集群主机。
备份
执行此路径的定期备份,并将其视为备份Cloudera Manager Server的必须的附件。如果你Cloudera Manager服务器迁移到一个新主机或从备份恢复它(例如,硬件故障后),在运行任何cloudera-scm-agentcloudera-scm-server程序之前,恢复这条路到新主机的全部内容到/ opt / Cloudera / parcel-repo目录。
Parcel 缓存(/opt/cloudera/parcel-cache) 运行Cloudera Manager代理阶段的托管主机将包分发到此路径(.parcel文件,未解压缩)。不要手动操作此目录或其文件。
Sizing 与计划
为每个主机提供足够的空间来存放您分配给每个主机的所有包裹。
您可以配置Cloudera Manager来删除这些缓存的.parcel文件,在它们被提取并放置到/opt/ Cloudera /parcel /之后。保留这些临时文件并不是必须的,但是保留它们可以避免从Cloudera Manager服务器存储库中传输.parcel文件(无论什么原因,您都需要再次提取该包裹)。
要在Cloudera Manager管理控制台中配置此行为,请选择管理>设置>parcels>保留下载的包文件
主机的Parcel目录 (/opt/cloudera/parcels) 运行Cloudera Manager Agent的托管集群主机在包激活时将包从/opt/ Cloudera / parcelc -cache目录提取到此路径。许多重要的系统符号链接指向此路径中的文件,您永远不应该手动操作其内容。
Sizing and Planning
在每个主机上提供足够的空间来存放您分发给每个主机的所有包裹。请注意,典型的CDH包裹大小大约是每个包裹2 GB,而一些第三方包裹可能超过3 GB。如果您在升级之前和之后维护各种版本的包,请注意磁盘空间的影响。
您可以配置Cloudera管理器,以便在旧包不再使用时自动删除它们。作为管理员,您总是可以手动删除未使用的包版本,但是配置这些设置可以自动处理删除操作,以防您忘记。
要在Cloudera Manager管理控制台中配置此行为,请选择管理>设置>包裹并配置以下属性:
自动删除旧 Parcel
此参数控制当已激活产品的旧版本不再使用时,是否应将其包从集群中删除。
默认值是禁用的。
需要保留的旧版 Parcel 的数量
如果您启用自动删除旧包裹,此设置指定要保留的旧包裹的数量。任何超过此值的旧包裹将被移除。如果此属性设置为零,则不保留任何旧的包。默认值是3。
Management Service Lifecycle - Space Reclamation Tasks
Task Description
活动监视器(一次性) 活动监视器只针对MapReduce (MR1)服务工作,而不是YARN。
因此,如果您的部署已经完全迁移到YARN,并且不再使用MapReduce (MR1)服务,那么您的活动监视器数据库将不再增长。
如果您等待的时间比默认的活动监控器保留期(14天)更长,那么活动监控器已经为您清除了这一切,您的数据库大部分是空的。
如果您的部署符合这些条件,那么可以考虑通过删除活动监视器数据库(同样,只有当您确信不再需要数据或确认不再使用数据时)和删除活动监视器角色来进行清理。
服务监视器和主机监视器(一次性) 对于那些使用Cloudera Manager版本4现在已经升级到版本5.x的用户:服务监视器和主机监视器从它们之前配置的RDBMS迁移到一个为每个角色单独使用的专门的时间序列存储。在此之后,这些角色的配置中仍然有遗留的数据库连接信息。这用于允许初始迁移,但不再用于任何活动工作。
在进行了上述迁移之后,以前由服务监视器和主机监视器使用的RDBMS数据库将不再使用。这些数据库占用的空间现在是可恢复的。
如果在您的环境中合适(并且您有长期备份或者不再需要磁盘上的数据),您可以删除这些数据库。
正在进行的空间回收 Cloudera管理服务会自动在后台为您卷起、清除或合并旧数据。配置每个角色的保留和清除限制,以控制发生的方式和时间。上面针对每个实体讨论了这些配置。调整默认配置以满足您的空间限制或保留需求。
日志文件

所有CDH集群主机为分配给主机的每个角色实例写出单独的日志文件。集群管理员可以监视和管理这些角色使用的磁盘空间,并配置日志循环,以防止日志文件消耗过多的磁盘空间。

有关更多信息,请参见管理日志文件的磁盘空间。

结论

在计划和架构由Cloudera Manager管理的集群部署时,请记住这些信息。如果您已经有一个活动的集群,那么这个生命周期和备份信息可以帮助您保持关键的监视、审计和元数据源的安全性和适当的备份。

配置网络名称

重要提示:CDH使用IPv4。不支持IPv6。

提示:在绑定时,使用bond0 IP地址,因为它表示所有聚合的链接。

配置集群中的每个主机如下,以确保所有成员可以相互通信:

  1. 将主机名设置为唯一的名称(而不是localhost)
sudo hostnamectl set-hostname foo-1.example.com
  1. 使用集群中每个主机的IP地址和完全限定域名(FQDN)编辑/etc/hosts。您也可以添加非限定名。
1.1.1.1  foo-1.example.com  foo-1
2.2.2.2  foo-2.example.com  foo-2
3.3.3.3  foo-3.example.com  foo-3
4.4.4.4  foo-4.example.com  foo-4

重要的是:

/etc/hosts中的每个主机的规范名称必须是FQDN(例如myhost-1.example.com),而不是不合格的主机名(例如myhost-1)。规范名称是IP地址之后的第一个条目。

不要使用别名,无论是在/etc/hosts中还是在配置DNS时。

非限定主机名(短域名)在Cloudera管理器实例中必须是唯一的。例如,您不能让同一台Cloudera Manager服务器同时管理host01.example.com和host01.standby.example.com。

  1. 只使用此主机的FQDN编辑/etc/sysconfig/network

    HOSTNAME=foo-1.example.com
    
  2. 验证每个主机对网络的一致性标识

    1. 运行uname -a并检查主机名是否与输出的hostname 相匹配。

    2. 运行/sbin/ifconfig并注意eth0(或bond0)条目中inet addr的值,例如:

      eth0      Link encap:Ethernet  HWaddr 00:0C:29:A4:E8:97  
                inet addr:172.29.82.176  Bcast:172.29.87.255  Mask:255.255.248.0
      ...
      
    3. 运行host -v -t A $(hostname)并验证输出是否与hostname命令匹配。IP地址应该与ifconfig报告的eth0(或bond0)相同:

      Trying "foo-1.example.com"
      ...
      ;; ANSWER SECTION:
      foo-1.example.com. 60 IN
      A
      172.29.82.176
      

禁用防火墙

要在集群中的每台主机上禁用防火墙,请在每台主机上执行以下步骤。

  1. 对于iptables,保存现有规则集
sudo iptables-save > ~/firewall.rules
  1. 禁用防火墙

    • 兼容RHEL 7 :

      sudo systemctl disable firewalld
      sudo systemctl stop firewalld
      
    • SLES:

      sudo chkconfig SuSEfirewall2_setup off
      sudo chkconfig SuSEfirewall2_init off
      sudo rcSuSEfirewall2 stop
      
    • Ubuntu:

      sudo service ufw stop
      

设置SELinux模式

注意:除了Cloudera Navigator加密之外,Cloudera Enterprise在启用了安全增强的Linux (SELinux)并处于enforcing 模式的平台上受到支持。Cloudera不负责SELinux策略的开发、支持或实施。如果您在启用SELinux的情况下运行Cloudera软件时遇到问题,请联系您的操作系统提供商寻求帮助。
如果在enforcing 模式下使用SELinux, Cloudera希望您禁用SELinux或将模式更改为permissive,从而在调查报告的问题时排除SELinux。

安全增强的Linux (SELinux)允许通过策略设置访问控制。如果在使用策略部署CDH时遇到困难,请在将CDH部署到集群之前,在每个主机上将SELinux设置为permissive模式。

要设置SELinux模式,请在每个主机上执行以下步骤。

  1. 检查SELinux状态

    getenforce
    
  2. 如果输出是PermissiveDisabled,您可以跳过此任务并继续禁用防火墙。如果输出enforcing,则继续下一步。

  3. 打开/etc/selinux/config文件(在某些系统中,是/etc/sysconfig/selinux文件)。

  4. 将行SELINUX= enforcing 改为SELINUX= permissive

  5. 保存并关闭文件。

  6. 重新启动系统或运行以下命令来立即禁用SELinux

setenforce 0

安装并部署CDH之后,可以重新启用SELinux,方法是将SELinux = permissive 改为SELinux =enforcing/etc/selinux/config(或/etc/sysconfig/selinux)中执行,然后运行以下命令立即切换到执行模式:

setenforce 1

如果您在使Cloudera软件与SELinux一起工作时遇到困难,请联系您的操作系统供应商获得支持。Cloudera不负责开发或支持SELinux策略。

启用NTP服务

CDH要求在集群中的每台机器上配置一个网络时间协议(NTP)服务。大多数操作系统包括用于时间同步的ntpd服务。

RHEL 7兼容的操作系统默认使用chronyd而不是ntpd。如果chronyd正在运行(在任何操作系统上),Cloudera Manager将使用它来确定主机时钟是否同步。否则,Cloudera Manager使用ntpd

注意:如果你使用ntpd来同步你的主机时钟,但是chronyd也在运行,Cloudera管理器依赖于chronyd来验证时间同步,即使它没有正确同步。这可能导致Cloudera管理器报告时钟偏移错误,即使时间是正确的。

要解决这个问题,要么配置并使用chronyd,要么禁用它并从主机上删除它。

使用ntpd进行时间同步:

  1. 安装ntp包
  • 兼容RHEL :

    yum install ntp
    
  • SLES:

    zypper install ntp
    
  • Ubuntu:

    apt-get install ntp
    
  1. 编辑/etc/ntp.conf文件以添加NTP服务器,如下面的示例所示
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
  1. 启动ntpd服务
  • RHEL 7 兼容:

    sudo systemctl start ntpd
    
  • RHEL 6 Compatible, SLES, Ubuntu:

    sudo service ntpd start
    
  1. 配置ntpd服务自启动:
  • RHEL 7 Compatible:

    sudo systemctl enable ntpd
    
  • RHEL 6 Compatible, SLES, Ubuntu:

    chkconfig ntpd on
    
  1. 同步系统时钟到NTP服务器:
ntpdate -u 
  1. 将硬件时钟与系统时钟同步
hwclock --systohc

在Hue主机上安装Python 2.7(仅仅在RHEL 6兼容的系统)

CDH 6中的Hue需要Python 2.7,它默认包含在RHEL 7兼容操作系统(os)中。

RHEL 6兼容的操作系统包括Python 2.6。在安装或升级到Cloudera Enterprise 6之前,必须在所有Hue主机上安装Python 2.7:

RHEL 6

  1. 确保您可以访问软件集合库。有关更多信息,请参阅Red Hat知识库文章,如何使用Red Hat软件集合(RHSCL)或Red Hat开发人员工具集(DTS)?

  2. 安装Python 2.7

    sudo yum install python27
    
  3. 验证是否安装了Python 2.7:

    source /opt/rh/python27/enable
    python --version
    

CentOS 6

  1. 启用软件集合库:
sudo yum install centos-release-scl
  1. 安装软件集合实用程序
sudo yum install scl-utils
  1. 安装Python 2.7:
sudo yum install python27
  1. 验证是否安装了Python 2.7::
source /opt/rh/python27/enable
python --version

Oracle Linux 6

  1. 下载软件集合库存储库
sudo wget -O /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo
  1. 编辑/etc/yum.repos.d / public-yum-ol6.repo并确保enabled被设置为1,如下所示
[ol6_software_collections]
name=Software Collection Library release 3.0 packages for Oracle Linux 6 (x86_64)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections/x86_64/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

有关更多信息,请参见在Oracle文档中从Oracle Linux Yum服务器安装Software Collection Library实用程序。

  1. 安装软件集合实用程序
sudo yum install scl-utils
  1. 安装Python2.7
sudo yum install python27
  1. 验证是否安装成功Python 2.7
source /opt/rh/python27/enable
python --version

Impala 的需求

要按照预期执行,Impala取决于软件、硬件和配置的可用性。以下部分将描述需要的配置。

产品兼容性矩阵

关于各种版本的CDH、Cloudera Manager和各种CDH组件之间的兼容性的最终来源是CDH和Cloudera Manager的产品兼容性矩阵。

支持的操作系统

Impala支持的相关操作系统和版本与相应的CDH平台相同。有关详细信息,请参阅支持的操作系统页面了解操作系统需求。

Hive元数据和相关配置

Impala可以与存储在Hive中的数据进行交互操作,并使用与Hive相同的基础设施来跟踪关于模式对象(如表和列)的元数据。以下组件是使用Impala的前提要求:

MySQL或PostgreSQL,作为Impala和Hive的元数据数据库。

总是配置一个Hive metastore service,而不是直接连接到metastore数据库。如果环境需要的话,Hive metastore服务需要在不同级别的metastore api之间进行互操作,使用它可以避免直接连接到metastore数据库的已知问题。

见下文metastore 安装程序的总结。

Hive(可选)。尽管只有Hive metastore数据库才能让Impala发挥作用,但是您可以在一些客户端机器上安装Hive来创建数据并加载数据到使用特定文件格式的表中。详细信息,请参见Impala如何处理Hadoop文件格式。Hive不需要安装在与Impala相同的datanode上;它只需要访问相同的metastore数据库。

安装元数据:

  1. 安装MySQL或PostgreSQL数据库。如果安装后数据库没有启动,则启动数据库。
  2. 下载MySQL连接器或PostgreSQL连接器,并将其放在/usr/share/java/目录中。
  3. 为您的数据库使用适当的命令行工具来创建metastore数据库。
  4. 为您的数据库使用适当的命令行工具,将metastore数据库的特权授予hive用户。
  5. 修改hive-site.xml以包含与特定数据库匹配的信息:URL、用户名和密码。稍后在Impala安装过程中,您将把hive-site.xml文件复制到Impala配置目录。

Java依赖

尽管Impala主要是用c++编写的,但它确实使用Java与各种Hadoop组件通信:

Impala官方支持的JVM是OpenJDK JVM和Oracle JVM。其他jvm可能会导致问题,通常会导致impalad启动失败。特别是,在Ubuntu系统的某些级别上默认使用的JamVM可能会导致impalad启动失败。
在内部,impalad守护进程依赖于JAVA_HOME环境变量来定位系统Java库。确保impalad服务运行在该变量正确的环境中。
所有Java依赖项都打包在impala- dependens .jar文件中,该文件位于/usr/lib/impala/lib/
这些映射到在fe/target/dependency下构建的所有东西。

网络配置要求

作为确保最佳性能的一部分,Impala尝试在本地数据上完成任务,而不是使用网络连接来处理远程数据。
为了支持这个目标,Impala通过将主机名标志解析为一个IP地址,将提供给每个Impala守护进程的hostname与每个DataNode的IP地址相匹配。
要让Impala处理本地数据,在每台机器上为DataNode和Impala守护进程使用一个IP接口。
确保Impala守护进程的主机名标志解析为DataNode的IP地址。
对于单宿主机器,这通常是自动的,但是对于多宿主机器,请确保Impala守护进程的主机名解析为正确的接口。
Impala尝试在启动时检测正确的主机名,并在表单消息的日志开始处打印派生的主机名

Using hostname: impala-daemon-1.example.com

在大多数情况下,这种自动检测工作正常。如果需要显式设置主机名,可以通过设置——hostname标志来实现。

硬件需求

内存分配应该在Impala执行节点之间保持一致。如果一个Impala执行器的内存限制比其他执行器低,那么它很容易成为瓶颈,导致性能不佳

此准则不适用于仅用于协调器的节点。

优化连接性能的硬件要求

在连接操作期间,每个连接表中的部分数据被加载到内存中。数据集可能非常大,因此要确保硬件有足够的内存来容纳预期要完成的连接。

虽然需求随数据集的大小而异,但一般建议如下:

  • CPU

Impala版本2.2及更高版本使用SSSE3指令集,该指令集包含在较新的处理器中。

注意:这个所需的处理器级别与Impala版本1.x相同。Impala 2.0和2.1版本对SSE4.1指令集有更严格的要求,现在已经放宽了。

  • 内存

推荐128gb或更高,理想情况下是256gb或更高。如果在特定节点上的查询处理期间的中间结果超过了该节点上Impala可用的内存量,那么查询就会将临时工作数据写入磁盘,这会导致查询时间变长。注意,由于工作是并行的,而且聚合查询的中间结果通常比原始数据小,Impala可以查询和连接比单个节点上可用内存大得多的表。

  • 目录服务器的JVM堆

建议大小为4 GB或更高,理想情况下为8 GB或更高,以适应您计划在Impala中使用的表、分区和数据文件的最大数量。

  • 存储

每个datanode有12个或更多磁盘的存储。对Impala来说, I/O速度通常是限制磁盘性能的因素。确保您有足够的磁盘空间来存储Impala将要查询的数据。

用户账号需求

Impala创建并使用一个名为Impala的用户和组。不要删除此帐户或组,也不要修改帐户或组的权限和权限。确保没有现有系统妨碍这些帐户和组的运作。例如,如果您有删除不在白名单中的用户帐户的脚本,请将这些帐户添加到允许帐户的列表中。

为了在DROP TABLE期间正确地删除文件,Impala必须能够将文件移动到HDFS垃圾桶。您可能需要创建一个HDFS目录/user/impala, impala用户可以写这个目录,这样就可以创建垃圾桶了。否则,数据文件可能会在DROP TABLE语句之后保留。

Impala不应该作为root运行。最好的Impala性能是使用直接读取实现的,但是root不允许使用直接读取。因此,以root身份运行Impala会对性能产生负面影响

默认情况下,任何用户都可以连接到Impala并访问所有相关的数据库和表。您可以对连接到Impala服务器的Linux OS用户和该用户的相关组启用授权和身份验证。更多的细节参见Imapla安全概述。这些安全特性不会改变底层文件的权限要求;impala用户仍然需要能够访问数据文件。

CDH基于包的安装(Package-based)所需的权限

下面几节描述了在Cloudera管理器中基于包安装CDH的用户权限要求。这些要求是安装和管理包和服务的标准UNIX系统要求。

需要的权限

**重要:**除非另有说明,当需要root或sudo访问时,使用提供root/sudo特权的其他系统(如PowerBroker)是可以接受的。

基于包的CDH安装所需的权限
任务 需要的权限
安装Cloudera Manager Server 安装CM Server的主机需要有root or sudo权限。
使用servicesystemctl工具启动、停止或重新启动Cloudera Manager服务器 Cloudera Manager Server 的主机需要有root or sudo权限 默认情况下服务运行在cloudera-scm用户下
使用CM安装CDH组件 在Cloudera Manager初始安装时配置的如下之一:
有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker)。
使用CM安装CM Agent 在Cloudera Manager初始安装时配置的如下之一:
有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker)。
自动启动CM Agent进程 在运行时访问root帐户,通过以下场景之一:
在Cloudera Manager和CDH安装期间,如果安装成功,代理将自动启动。然后使用以下其中一种启动它,这与Cloudera Manager初始安装期间的配置相同:
有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker)。
在系统启动过程中使用init自动启动。
手动启动、停止或重新启动Cloudera Manager Agent进程 root or sudo 权限。
这个权限要求确保Cloudera Manager代理管理的服务可以作为适当的用户运行(例如hdfs服务的hdfs用户)。在CDH服务的Cloudera Manager中运行命令不需要rootsudo访问,因为操作是由Cloudera Manager Agent处理的,它已经作为root在运行了。

由CM运行的sudo命令

如果您想为Cloudera Manager用户配置特定的sudo访问(默认情况下是Cloudera -scm),您可以使用以下列表来完成。

Cloudera Manager运行的sudo命令有:

  • yum (RHEL/CentOS/Oracle)
  • zypper (SLES)
  • apt-get (Ubuntu)
  • apt-key (Ubuntu)
  • sed
  • service
  • /sbin/chkconfig (RHEL/CentOS/Oracle)
  • /usr/sbin/update-rc.d (Ubuntu)
  • id
  • rm
  • mv
  • chown
  • install

端口

Cloudera Manager、CDH组件、托管服务和第三方组件使用的端口如下表所示。在部署Cloudera Manager、CDH和托管服务以及第三方组件之前,请确保这些端口在每个系统上都是打开的。如果您使用的是防火墙(如iptablesfirewalld),并且不能打开所有列出的端口,则必须完全禁用防火墙,以确保功能齐全。

在下面的子部分的表中,每个端口的访问需求列通常是“内部”或“外部”。在此上下文中,“内部”表示端口仅用于组件之间的通信(例如HA配置中的JournalNode端口);“外部”意味着该端口可以用于内部或外部通信(例如,NodeManager和JobHistory Server Web ui使用的端口)。

除非另外指定,否则端口访问要求是单向的,这意味着必须允许到指定端口的入站连接。在大多数现代的有状态防火墙中,没有必要为允许会话上的返回流量创建单独的规则。

Cloudera Manager和Cloudera Navigator使用的端口

下图概述了Cloudera Manager、Cloudera Navigator和Cloudera管理服务角色使用的一些端口:

CM和Cloudera Navigator使用的端口

CDH6官方文档中文系列(2)----Cloudera安装指南(安装前)_第1张图片

当启用了包裹的点对点分发时,Cloudera Manager Agent可以从Cloudera Manager服务器或其他Agent获取包裹,如下:

点对点包裹分发中使用的端口

CDH6官方文档中文系列(2)----Cloudera安装指南(安装前)_第2张图片

有关详细信息,请参见下表。列出的所有端口都是TCP。

在下表中,Internal表示端口仅用于组件之间的通信;External 意味着该端口可以用于内部通信或外部通信。

External Ports

组件 服务 端口 配置 说明
Cloudera Manager Server HTTP (Web UI) 7180 管理>设置>类别>端口和地址> HTTP端口的管理控制台 web控制台使用的HTTP端口。
HTTPS (Web UI) 7183 管理>设置>类别>端口和地址> HTTPS管理控制台端口 如果启用了HTTPS,则web控制台使用的端口。如果启用,端口7180将保持打开,但是将所有请求重定向到端口7183上的HTTPS。
Cloudera Navigator Metadata Server HTTP (Web UI) 7187 Cloudera Management Service>配置>类别>端口和地址>导航器元数据服务器端口 Navigator元数据服务器侦听请求的端口。
Backup and Disaster Recovery HTTP (Web UI) 7180 管理>设置>类别>端口和地址> Admin Console 的 HTTP 端口 用于与Cloudera Manager通信
HTTPS (Web UI) 7183 管理>设置>类别>端口和地址> Admin Console 的 HTTPS 端口 在启用https时,用于与Cloudera Manager通信
HDFS NameNode 8020 HDFS服务>配置>类>端口和地址> NameNode端口 HDFS和Hive/Impala复制:从目标HDFS和MapReduce主机到源HDFS NameNode(s)的通信。Hive/Impala复制:从源Hive主机到目标HDFS NameNode(s)的通信
HDFS DataNode 50010 HDFS服务>配置>类>端口和地址> DataNode 收发器端口 HDFS和Hive/Impala复制:从目标HDFS和MapReduce主机到源HDFS DataNode(s)的通信。Hive/Impala复制:从源Hive主机到目标HDFS DataNode(s)的通信。
Telemetry Publisher(??) HTTP 10110 集群>Cloudera Management Service>类别>端口和地址>Telemetry Publisher Server Port 遥测发布服务器侦听请求的端口
Telemetry Publisher HTTP (Debug) 10111 集群>Cloudera Management Service>类别>端口和地址> Telemetry Publisher Web UI Port 遥测发布者启动调试web服务器的端口。设置为-1以禁用调试服务器

Internal Ports

组件 服务 端口 配置 描述
Cloudera Manager Server Avro (RPC) 7182 管理>设置>类>端口和地址>连接到服务器的代理端口 用于代理服务器心跳
嵌入式PostgreSQL数据库 7432 可选的嵌入式PostgreSQL数据库,用于存储Cloudera Manager服务器的配置信息。
点对点包裹分布 7190, 7191 主机>所有主机>配置>P2P Parcel 分配端口 用于在安装和升级操作期间向集群主机分发包。
Cloudera Manager Agent 监听端口 Custom protocol 9000 /etc/cloudera-scm-agent/config.ini 用于检索日志和诊断信息,如结果摘要。已完成命令的json文件。还用于从代理请求即时心跳并查看代理状态,如心跳、主机和服务信息。
Event Server Custom protocol 7184 Cloudera Management Service>配置>类别>端口和地址>事件发布端口 事件服务器侦听事件发布的端口。
Custom protocol 7185 Cloudera Management Service>配置>类别>端口和地址 >事件查询端口 事件服务器侦听事件查询的端口。
HTTP (Debug) 8084 Cloudera Management Service>配置>类别>端口和地址 > Event Server Web UI 端口 事件服务器调试页面的端口。设置为-1以禁用调试服务器。
警报发布 Custom protocol 10101 Cloudera Management Service> 配置>类别>端口和地址 > 警报:侦听端口 警报发布者侦听内部API请求的端口。
服务监控 HTTP (Debug) 8086 Cloudera Management Service> 配置>类别>端口和地址 >Service Monitor Web UI 端口 服务监视器调试页面的端口。设置为-1以禁用调试服务器。
HTTPS (Debug) Cloudera Management Service> 配置>类别>端口和地址 > Service Monitor Web UI HTTPS Port 服务监视器的HTTPS调试页面的端口。
Custom protocol 9997 Cloudera Management Service> 配置>类别>端口和地址 > Service Monitor 侦听端口 服务监视器监听代理消息的端口。
Internal query API (Avro) 9996 Cloudera Management Service> 配置>类别>端口和地址 > Service Monitor 喷嘴端口 服务监视器的查询API公开的端口。
Activity Monitor HTTP (Debug) 8087 Cloudera Management Service> 配置>类别>端口和地址 > Activity Monitor Web UI 端口 活动监视器调试页的端口。设置为-1以禁用调试服务器。
HTTPS (Debug) Cloudera Management Service> 配置>类别>端口和地址 > Activity Monitor Web UI HTTPS Port 活动监视器的HTTPS调试页面的端口。
Custom protocol 9999 Cloudera Management Service> 配置>类别>端口和地址 > Activity Monitor 侦听端口 活动监视器侦听代理消息的端口。
Internal query API (Avro) 9998 Cloudera Management Service> 配置>类别>端口和地址 > Activity Monitor 喷嘴端口 活动监视器的查询API公开的端口。
Host Monitor HTTP (Debug) 8091 Cloudera Management Service> 配置>类别>端口和地址 > Host Monitor Web UI 端口 主机监视器调试页的端口。设置为-1以禁用调试服务器。
Custom protocol 9995 Cloudera Management Service> 配置>类别>端口和地址 >Host Monitor 侦听端口 主机监视器监听代理消息的端口。
Internal query API (Avro) 9994 Cloudera Management Service> 配置>类别>端口和地址 > Host Monitor 喷嘴端口 主机监视器的查询API公开的端口。
Reports Manager Queries (Thrift) 5678 Cloudera Management Service> 配置>类别>端口和地址 > Reports Manager Server Port 报告管理器侦听请求的端口。
HTTP (Debug) 8083 Cloudera Management Service> 配置>类别>端口和地址 > Reports Manager Web UI Port 报告管理器启动调试web服务器的端口。设置为-1以禁用调试服务器。
Cloudera Navigator 审计服务 HTTP 7186 Cloudera Management Service> 配置>类别>端口和地址 >Navigator Audit Server Port 导航器审计服务器侦听请求的端口。
HTTP (Debug) 8089 Cloudera Management Service> 配置>类别>端口和地址 >Navigator Audit Server Web UI Port 导航器审计服务器运行调试web服务器的端口。设置为-1以禁用调试服务器。

Cloudera Navigator Encryption使用的端口

列出的所有端口都是TCP。

在下表中,每个端口的访问需求列通常是“内部”或“外部”。在这种情况下,“内部”意味着端口仅用于组件之间的通信;“外部”意味着该端口可以用于内部通信或外部通信。

组件 服务 端口 外/内部 配置 说明
ator Key Trustee Server HTTPS (key management) 11371 External Key Trustee Server service> 配置>类别>端口和地址 >Key Trustee Server Port 导航器密钥受信者服务器客户端(包括密钥受信者KMS和导航器加密)访问此端口以存储和检索加密密钥。
PostgreSQL database 11381 External Key Trustee Server service > 配置>类别>端口和地址 > Key Trustee Server Database Port 航器密钥受信者服务器数据库在此端口上侦听。无源密钥受信者服务器连接到活动密钥受信者服务器上的此端口,以便在Cloudera导航器密钥受信者服务器高可用性中进行复制。

CDH组件使用的端口

列出的所有端口都是TCP。

在下表中,每个端口的访问需求列通常是“内部”或“外部”。在这种情况下,“内部”意味着端口仅用于组件之间的通信;“外部”意味着该端口可以用于内部通信或外部通信。

External Ports

组件 服务 端口 配置 说明
Apache Hadoop HDFS DataNode 9866 dfs.datanode.address DataNode HTTP服务器端口
1004 dfs.datanode.address
9864 dfs.datanode.http.address
9865 dfs.datanode.https.address
1006 dfs.datanode.http.address
9867 dfs.datanode.ipc.address
NameNode 8020 fs.default.name or fs.defaultFS 已不推荐使用fs.default.nameis(但仍然可以使用)
8022 dfs.namenode. servicerpc-address HDFS守护进程使用的可选端口,以避免共享客户端使用的RPC端口(8020)。Cloudera建议使用端口8022。
9870 dfs.http.address or dfs.namenode.http-address dfs.http.address不推荐使用(但仍然有效)
NFS gateway 2049 nfs3.server.port nfs port
4242 nfs3.mountd.port mountd port
111 端口映射(或 Rpcbind)端口
50079 nfs.http.port NFS网关守护进程使用这个端口来服务指标。该端口在版本5.10或更高版本上是可配置的。
50579 nfs.https.port NFS网关守护进程使用这个端口来服务指标。该端口在版本5.10或更高版本上是可配置的。
HttpFS 14000
14001
Apache Hadoop YARN (MRv2) ResourceManager 8032 yarn. resourcemanager. address
8033 yarn. resourcemanager. admin.address
8088 yarn. resourcemanager. webapp.address
8090 yarn. resourcemanager. webapp.https.address
NodeManager 8042 yarn. nodemanager. webapp.address
8044 yarn. nodemanager. webapp.https.address
JobHistory Server 19888 mapreduce. jobhistory. webapp.address
19890 mapreduce. jobhistory. webapp.https.address
ApplicationMaster ApplicationMaster使用无法限制的临时端口提供HTTP服务。客户端永远不会从集群外部直接访问此端口。对ApplicationMaster web服务器的所有请求都使用YARN ResourceManager(代理服务)路由。锁定对集群网络内临时端口范围的访问可能会限制您对ApplicationMaster UI及其日志的访问,以及查看正在运行的应用程序的能力。
Apache Flume Flume Agent 41414
Apache Hadoop KMS Key Management Server 16000 kms_http_port 适用于Java密钥存储库KMS和密钥受信者KMS。
Apache HBase Master 16000 hbase.master. port IPC
16010 hbase.master. info.port HTTP
RegionServer 16020 hbase. regionserver. port IPC
6030 hbase. regionserver. info.port HTTP
REST 20550 hbase.rest.port HBase中的默认REST端口是8080。因为这是一个常用的端口,Cloudera Manager将默认值设置为20550。
REST UI 8085
Thrift Server 9090 Pass -p on CLI
Thrift Server 9095
9090 Pass --port on CLI
Lily HBase Indexer 11060
Apache Hive Metastore 9083
HiveServer2 10000 hive. server2. thrift.port Beeline命令解释器要求您在命令行上指定此端口。如果使用Oracle数据库,则必须手动保留此端口。有关更多信息,请参见HiveServer 2的预留端口。
HiveServer2 Web User Interface (UI) 10002 hive. server2. webui.port in hive-site.xml
WebHCat Server 50111 templeton.port
Apache Hue Server 8888
Load Balancer 8889
Apache Impala Impala Daemon 21000 用于通过impala-shell和Cloudera ODBC驱动程序的1.2版传输命令和接收结果。
21050 用于通过应用程序(如商业智能工具)传输命令和接收结果,使用JDBC、Hue中的Beeswax查询编辑器和Cloudera ODBC驱动程序的2.0或更高版本。
25000 用于管理员监视和故障排除的Impala web接口。
Apache Kafka Broker 9092 port 生产者和消费者使用的主要通信端口;也用于内部节点间通信。
9093 ssl_port 生产者和消费者使用的受保护的通信端口;也用于节点间通信。
Apache Kudu Master 7051 Kudu Master RPC port
8051 Kudu Master HTTP server port
TabletServer 7050 Kudu TabletServer RPC port
8050 Kudu TabletServer HTTP server port
Apache Oozie Oozie Server 11000 OOZIE_HTTP_PORT in oozie-env.sh HTTP
11443 HTTPS
Apache Sentry Sentry Server 8038 sentry.service. server.rpc-port
51000 sentry.service. web.port
Apache Solr Solr Server 8983 HTTP端口的所有solr具体的行动,更新/查询。
8985 用于所有特定于solr的操作、更新/查询的HTTPS端口。
Apache Spark Default Master RPC port 7077
Default Worker RPC port 7078
Default Master web UI port 18080
Default Worker web UI port 18081
History Server 18088 history.port
Apache Sqoop Metastore 16000 sqoop. metastore. server.port
Apache ZooKeeper Server (with CDH or Cloudera Manager) 2181 clientPort Client port

Internal Ports

组件 服务 端口 配置 说明
Apache Hadoop HDFS Secondary NameNode 9868 dfs.secondary.http.address or dfs.namenode. secondary. http-address dfs.secondary.http.address不推荐使用(但是依然有效)
9869 dfs.secondary.https.address
JournalNode 8485 dfs.namenode. shared.edits.dir
8480 dfs.journalnode. http-address
8481 dfs.journalnode. https-address
Failover Controller 8019 用于NameNode HA
Apache Hadoop YARN (MRv2) ResourceManager 8030 yarn.resourcemanager.scheduler.address
8031 yarn. resourcemanager. resource-tracker. address
NodeManager 8040 yarn. nodemanager. localizer. address
8041 yarn. nodemanager. address
JobHistory Server 10020 mapreduce. jobhistory. address
10033 mapreduce. jobhistory.admin. address
Shuffle HTTP 13562 mapreduce.shuffle.port
Apache Hadoop KMS Key Management Server 16001 kms_admin_port 适用于Java密钥存储库KMS和密钥受信者KMS。
Apache HBase HQuorumPeer 2181 hbase. zookeeper. property. clientPort HBase-managed管理员模式
2888 hbase. zookeeper. peerport HBase-managed管理员模式
3888 hbase. zookeeper. leaderport HBase-managed管理员模式
Apache Impala Impala Daemon 22000 内部使用。Impala守护进程使用这个端口互相通信。
23000 内部使用。Impala守护进程在这个端口上侦听来自statestore守护进程的更新。
StateStore Daemon 24000 内部使用。statestore守护进程在这个端口上侦听注册/取消注册请求。
Catalog Daemon 23020 内部使用。目录守护进程在此端口上侦听来自statestore守护进程的更新。
26000 内部使用。目录服务使用这个端口与Impala守护进程通信。
Apache Kafka Broker 9092 port 生产者和消费者使用的主要通信端口;也用于代理间通信。ion.
9093 ssl_port 生产者和消费者使用的受保护的通信端口;也用于代理间通信。
9393 jmx_port 内部使用。用于通过JMX进行管理。
9394 kafka.http.metrics.port 内部使用。这是HTTP度量报告器侦听的端口。它用于通过HTTP而不是JMX检索指标。
MirrorMaker 24042 jmx_port 内部使用。用于管理镜子制造商的生产者和消费者。
Apache Spark Shuffle service 7337
Apache ZooKeeper Server (with CDH only) 2888 X in server.N =host:X:Y Peer
Server (with CDH only) 3888 X in server.N =host:X:Y Peer
Server (with CDH and Cloudera Manager) 3181 X in server.N =host:X:Y Peer
Server (with CDH and Cloudera Manager) 4181 X in server.N =host:X:Y Peer
ZooKeeper JMX port 9010 ZooKeeper还将为RMI使用另一个随机选择的端口。要允许Cloudera管理员监视ZooKeeper,您必须执行以下操作之一:
当连接来自Cloudera Manager服务器时,打开所有端口
执行以下操作:
1. 在防火墙中打开非临时端口(如9011)。
2. 安装Oracle Java 7u4 JDK或更高版本。
3. 将端口配置添加到高级配置片段,例如:-Dcom.sun.management。jmxremote.rmi.port = 9011
4. 重启ZooKeeper

DistCp使用的端口

列出的所有端口都是TCP。

在下表中,每个端口的访问需求列通常是“内部”或“外部”。在这种情况下,“内部”意味着端口仅用于组件之间的通信;“外部”意味着该端口可以用于内部通信或外部通信。

组件 服务 Qualifier 端口 外/内部 配置 说明
Hadoop HDFS NameNode 8020 External fs.default. nameorfs.defaultFS fs.default. name被弃用了(但还是有作用)
DataNode Secure 1004 External dfs.datanode. address
DataNode 50010 External dfs.datanode. address
WebHDFS NameNode 50070 External dfs.http. addressordfs.namenode. http-address dfs.http. address被弃用了(但还是有作用)
DataNode Secure 1006 External dfs.datanode.http. address
HttpFS web 14000

第三方组件使用的端口

在下表中,每个端口的访问需求列通常是“内部”或“外部”。在这种情况下,“内部”意味着端口仅用于组件之间的通信;“外部”意味着该端口可以用于内部通信或外部通信。

组件 服务 Qualifier 端口 协议 外/内部 配置 说明
Ganglia ganglia-gmond 8649 UDP/TCP Internal
ganglia-web 80 TCP External Via Apachehttpd
Kerberos KRB5 KDC Server Secure 88 UDP/TCP External kdc_portsandkdc_tcp_portsin either the[kdcdefaults]or[realms]sections ofkdc.conf By default only UDP
KRB5 Admin Server Secure 749 TCP External kadmind_portin the[realms]section ofkdc.conf
kpasswd 464 UDP/TCP External
SSH ssh 22 TCP External
PostgreSQL 5432 TCP Internal
MariaDB 3306 TCP Internal
MySQL 3306 TCP Internal
LDAP LDAP Server 389 TCP External
LDAP Server over TLS/SSL TLS/SSL 636 TCP External
Global Catalog 3268 TCP External
Global Catalog over TLS/SSL TLS/SSL 3269 TCP External

推荐的集群主机和角色分配

**重要提示:**本主题描述由Cloudera Manager管理的CDH集群的建议角色分配。根据工作负载的类型和数量、集群中部署的服务、硬件资源、配置和其他因素,您为部署选择的实际任务可能会有所不同。

当您使用Cloudera Manager安装向导安装CDH时,Cloudera Manager尝试根据主机中可用的资源在集群主机之间分配角色(分配给网关主机的角色除外)。您可以在向导中出现的“自定义角色分配”页上更改这些分配。您还可以在以后使用Cloudera Manager更改和添加角色。参见角色实例。

如果您的集群使用静态数据加密,请参阅为密钥受信者服务器和密钥受信者KMS分配主机。

有关在何处定位Cloudera Manager和其他服务所需的各种数据库的信息,请参见步骤4:安装和配置数据库。

CDH集群主机和角色分配

集群主机可以大致描述为以下类型:

  • **管理节点:**运行Hadoop Master进程,比如HDFS NameNode和YARN Resource Manager.。
  • **实例节点:**运行其他非主进程的集群进程,如Cloudera Manager和Hive Metastore。
  • **网关节点:**是在集群中启动作业的客户机访问点。网关主机的数量取决于工作负载的类型和大小。
  • **工作几点:**主要运行datanode和其他分布式进程,比如Impalad。

**重要提示:**Cloudera建议在生产环境中使用CDH时始终启用高可用性。

下表描述了不同集群大小的推荐角色分配:

3 - 10个工作主机且集群没有高可用性
Master Hosts Utility Hosts 与Gateway Hosts Worker Host
**一台主机做为Master Host : ** NameNode
YARN ResourceManager
JobHistory Server
ZooKeeper
Kudu master
Spark History Server
一台主机 作为所有的工具姐节点和网关节点:
Secondary NameNode
Cloudera Manager
Cloudera Manager Management Service
Hive Metastore
HiveServer2
Impala Catalog Server
Impala StateStore
Hue
Oozie
Flume
Gateway configuration
3-10台用作工作主机DataNode
NodeManager
Impalad
Kudu tablet server
3 - 20个工作主机且集群开启高可用性
Master Hosts Utility Hosts Gateway Hosts Worker Hosts
Master Host 1:
NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
JobHistory Server
Spark History Server
Kudu master
Master Host 2:
NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
Kudu master
Master Host 3:
Kudu master (Kudu 的高可用需要3个master节点.)
**Utility Host 1:
**Cloudera Manager
Cloudera Manager Management Service
Hive Metastore
Impala Catalog Server
Impala StateStore
Oozie
ZooKeeper (requires dedicated disk)
JournalNode (requires dedicated disk)
One or more Gateway Hosts:
HueHiveServer2
Flume
Gateway configuration
**3 - 20 Worker Hosts:
**DataNode
NodeManager
Impalad
Kudu tablet server
20 - 80个Worker主机且集群启用高可用性的
Master Hosts Utility Hosts Gateway Hosts WorkerHosts
Master Host 1:
NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
Kudu master
**Master Host 2:
**NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
Kudu master
**Master Host 3:
**ZooKeeper
JournalNode
JobHistory Server
Spark History ServerKudu master
Utility Host 1:
Cloudera Manager
**Utility Host 2:
**Cloudera Manager Management Service
Hive Metastore
Impala Catalog Server
Oozie
One or more Gateway Hosts:
Hue
HiveServer2
Flume
Gateway configuration
**20 - 80 Worker Hosts:
**DataNode
NodeManager
Impalad
Kudu tablet server
80 - 200个Worker主机具有高可用性
Master Hosts UtilityHosts Gateway Hosts Worker Hosts
Master Host 1:
NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
Kudu master
Master Host 2:
NameNode
JournalNode
FailoverController
YARN ResourceManager
ZooKeeper
Kudu master
Master Host 3:
ZooKeeper
JournalNode
JobHistory Server
Spark History Server
Kudu master
Utility Host 1:
Cloudera Manager
Utility Host 2:
Hive Metastore
Impala Catalog Server
Impala StateStore
Oozie
Utility Host 3:
Activity Monitor
Utility Host 4:
Host Monitor
**Utility Host 5:
**Navigator Audit Server
**Utility Host 6:
**Navigator Metadata Server
**Utility Host 7:
**Reports Manager
Utility Host 8:
Service Monitor
One or more Gateway Hosts:
Hue
HiveServer2
Flume
Gateway configuration
80 - 200 Worker Hosts:
DataNode
NodeManager
Impalad
Kudu tablet server
(建议最大tablet服务器数量为100)
200 - 500个Worker主机具有高可用性
Master Hosts Utility Hosts Gateway Hosts Worker Hosts
Master Host 1:
NameNode
JournalNode
FailoverController
ZooKeeper
Kudu master
Master Host 2:
NameNode
JournalNode
FailoverController
ZooKeeper
Kudu master
Master Host 3:
YARN ResourceManager
ZooKeeper
JournalNode
Kudu master
**Master Host 4:
**YARN ResourceManager
ZooKeeper
JournalNode
Master Host 5:
JobHistory Server
Spark History Server
ZooKeeper
JournalNode
我们推荐不超过三个Kudu master。
Utility Host 1:
Cloudera Manager
Utility Host 2:
Hive Metastore
Impala Catalog Server
Impala StateStore
Oozie**
Utility Host 3:**
Activity Monitor
Utility Host 4:
Host Monitor
**Utility Host 5:
**Navigator Audit Server
Utility Host 6:
Navigator Metadata Server
**Utility Host 7:
**Reports Manager
Utility Host 8:
Service Monitor
One or more Gateway Hosts:
Hue
HiveServer2
Flume
Gateway configuration
**200 - 500 Worker Hosts:
**DataNode
NodeManager
Impalad
Kudu tablet server
(建议最大tablet服务器数量为100)
500 -1000个Worker主机具有高可用性
Master Hosts Utility Hosts GatewayHosts Worker Hosts
Master Host 1:
NameNode
JournalNode
FailoverController
ZooKeeper
Kudu master
Master Host 2:
NameNode
JournalNode
FailoverController
ZooKeeper
Kudu master
Master Host 3:
YARN ResourceManager
ZooKeeper
JournalNode
Kudu master
Master Host 4:
YARN ResourceManager
ZooKeeper
JournalNode
Master Host 5:
JobHistory Server
Spark History Server
ZooKeeper
JournalNode
我们推荐不超过三个Kudu master。
Utility Host 1:
Cloudera Manager
Utility Host 2:
Hive Metastore
Impala Catalog Server
Impala StateStore
Oozie
Utility Host 3:
Activity Monitor**
Utility Host 4:
**Host Monitor
Utility Host 5:
Navigator Audit Server
Utility Host 6:
Navigator Metadata Server
Utility Host 7:
Reports Manager
**Utility Host 8:
**Service Monitor
One or more Gateway Hosts:
Hue
HiveServer2
Flume
Gateway configuration
500 - 1000 Worker Hosts:
DataNode
NodeManager
Impalad
Kudu tablet server (建议最大tablet服务器数量为100)

为主要受信者服务器和主要受信者KMS分配主机

如果要为CDH集群启用数据静态加密,Cloudera建议将密钥托管服务器与其他企业数据中心(enterprise data hub, EDH)服务隔离开来,方法是将密钥托管服务器部署在Cloudera Manager管理的独立集群中的专用主机上。Cloudera还建议在需要访问密钥受信者服务器的EDH服务所在的同一集群的专用主机上部署密钥受信者KMS。这种体系结构可以帮助用户避免在重新启动集群时重新启动密钥托管服务器。

有关在EDH中加密静止数据的更多信息,请参见加密静止数据。

对于一般的生产环境,或者如果您已经为HDFS启用了高可用性,并且正在使用数据静止加密,Cloudera建议您为密钥受信者服务器和密钥受信者KMS启用高可用性。

See:

  • Cloudera Navigator Key Trustee Server High Availability
  • Enabling Key Trustee KMS High Availability

自定义安装解决方案

Cloudera托管两种类型的软件存储库,您可以使用它们来安装Cloudera Manager或CDH-parcel存储库和包存储库等产品。

这些存储库在大多数情况下是有效的解决方案,但有时需要定制安装解决方案。使用cloudera托管的软件库需要通过Internet访问客户端。典型的安装使用最新可用的软件。在某些情况下,这些行为可能不可取,例如:

  • 您需要安装较老的产品版本。例如,在一个CDH集群中,所有主机必须运行相同的CDH版本。完成初始安装后,可能需要添加主机。这可以增加集群的大小来处理更大的任务,或者替换旧的硬件。
  • 要在其上安装Cloudera产品的主机没有连接到Internet,因此它们无法访问Cloudera存储库。(对于包安装,只有Cloudera Manager服务器需要访问Internet,但是对于包安装,所有集群主机都需要访问Cloudera存储库)。大多数组织都将网络的各个部分与外部访问区分开。隔离网络段可以提高安全性,但是会增加安装过程的复杂性。

在这两种情况下,使用内部存储库允许您满足组织的需求,不管这意味着安装特定版本的Cloudera软件,还是在没有Internet访问的主机上安装Cloudera软件。

介绍Parcels

Parcels是一种包装格式,便于从Cloudera管理器中升级软件。您可以从Cloudera Manager中下载、分发和激活一个新的软件版本。Cloudera Manager将一个包下载到本地目录。一旦Parcels被下载到Cloudera Manager服务器主机,就不再需要网络连接来部署Parcels了。有关Parcels的详细信息,请参见Parcels。

如果您的Cloudera Manager服务器没有互联网接入,您可以获得所需的包裹文件并将它们放入包裹存储库中。有关更多信息,请参见配置本地Parcels存储库。

理解包管理

在详细介绍如何在您的环境中配置自定义包管理解决方案之前,最好先了解以下信息:

包管理工具

包(rpm或deb文件)通过满足包的依赖性帮助确保安装成功完成。当您安装一个特定的包时,所有其他需要的包都会同时安装。例如,hadoop-0.20-hive依赖于hadoop-0.20。

包管理工具,如yum (RHEL)、zypper (SLES)和apt-get (Ubuntu)是可以查找和安装所需包的工具。例如,在一个RHEL兼容的系统上,可以运行命令yum install hadoop-0.20 hive。yum实用程序告诉您,Hive包需要hadoop-0.20,并提供为您安装它。zypper和apt-get提供了类似的功能。

包仓库

包管理工具依赖于包存储库来安装软件并解决任何依赖需求。有关创建内部存储库的信息,请参见配置本地包存储库。

存储库配置文件

关于包存储库的信息存储在配置文件中,配置文件的位置根据包管理工具的不同而不同。

  • RHEL兼容 (yum): /etc/yum.repos.d
  • SLES (zypper): /etc/zypp/zypper.conf
  • Ubuntu (apt-get): /etc/apt/apt.conf (使用/etc/apt/sources.list中的.list文件指定其他存储库。)

例如,在一个典型的CentOS系统上,你可能会发现:

ls -l /etc/yum.repos.d/
total 36
-rw-r--r--. 1 root root 1664 Dec  9  2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Dec  9  2015 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Dec  9  2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  290 Dec  9  2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Dec  9  2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Dec  9  2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 Dec  9  2015 CentOS-Vault.repo
-rw-r--r--. 1 root root  951 Jun 24  2017 epel.repo
-rw-r--r--. 1 root root 1050 Jun 24  2017 epel-testing.repo

repo文件包含指向一个或多个存储库的指针。在zypper和apt-get的配置文件中也有类似的指针。下面是CentOS-Base的摘录。repo定义了两个存储库:一个名为Base,另一个名为Updatesmirrorlist参数指向一个网站,该网站列出了可以下载该存储库的位置。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
库清单

您可以通过运行以下命令之一列出启用的存储库:

  • RHEL兼容:yum repolist
  • SLES: zypper repos
  • Ubuntu: apt-get不包含显示源文件的命令,但是你可以通过查看/etc/apt/source的内容来确定源文件。列表和/etc/apt/sources.list.d/中包含的任何文件。

下面展示了yum repolist在CentOS 7系统上的输出示例:

repo id               repo name                                           status
base/7/x86_64         CentOS-7 - Base                                      9,591
epel/x86_64           Extra Packages for Enterprise Linux 7 - x86_64      12,382
extras/7/x86_64       CentOS-7 - Extras                                      392
updates/7/x86_64      CentOS-7 - Updates                                   1,962
repolist: 24,327

配置本地Parcel 存储库

您可以通过托管一个内部Web存储库或手动将存储库文件复制到Cloudera Manager服务器主机上,以便分发到Cloudera Manager代理主机上,为Cloudera Manager创建一个打包存储库。

使用内部托管的远程包存储库
安装Web服务器

要托管内部存储库,您必须在Cloudera Manager主机可访问的内部主机上安装或使用现有的Web服务器,然后将存储库文件下载到Web服务器主机。本页面中的示例使用Apache HTTP服务器作为Web服务器。如果您的组织中已经有一个Web服务器,您可以跳过下载和发布包裹存储库。

  1. 安装Apache HTTP服务器
sudo yum install httpd

警告:跳过这一步可能会导致在尝试从本地存储库下载包裹时出现错误消息哈希验证失败,特别是在Cloudera Manager 6或更高版本中。

编辑Apache HTTP服务器配置文件(/etc/httpd/conf/默认httpd.conf),在部分添加或编辑以下行:

 AddType application/x-gzip .gz .tgz .parcel

如果部分不存在,可以将其完整添加,如下所示:

注意:这个示例配置是从RHEL 7上安装Apache HTTP Server后提供的默认配置修改的。

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig /etc/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz .parcel

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
  1. 启动Apache HTTP服务器
sudo systemctl start httpd
下载并发布包裹存储库
  1. 下载manifest.json。要安装的产品的json和包裹文件

CDH 6

CDH包中包括Apache Impala、Apache Kudu、Apache Spark 2和Cloudera搜索。要下载最新CDH 6.2版本的文件,请在Web服务器主机上运行以下命令:

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.1/parcels/ -P /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.1/parcels/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6

如果您想为不同的CDH 6版本创建存储库,请将6.2.1替换为您想要的CDH 6版本。有关更多信息,请参见cdh6下载信息。

Apache Accumulo for CDH

要下载CDH的Accumulo版本(本例中是Accumulo 1.7.2)的文件,请在Web服务器主机上运行以下命令:

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/accumulo-c5/parcels/1.7.2/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/accumulo-c5

如果您想为Accumulo 1.6.0创建存储库,请将1.7.2替换为1.6.0。

CDS由Apache Spark 2为CDH提供动力

下载CDH (CDS 2.3.0)的cd版本的文件。,在Web服务器主机上运行以下命令:

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/spark2/parcels/2.3.0.cloudera3/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/spark2

如果您想为不同的cd版本创建存储库,请替换2.3.0.cloudera3。你想要的CDS版本。有关更多信息,请参阅Apache Spark版本信息驱动的CDS。

Cloudera Navigator 密钥托管服务器

转到密钥托管服务器下载页面。从“选择下载类型”下拉菜单中选择Parcels,然后单击“立即下载”。这将下载密钥受托人服务器包裹和manifest.json文件在.tar.gz文件。将文件复制到Web服务器,并使用tar xvfz filename.tar.gz命令解压缩文件。这个例子使用了密钥托管服务器5.14.0:

sudo mkdir -p /var/www/html/cloudera-repos/keytrustee-server
sudo tar xvfz /path/to/keytrustee-server-5.14.0-parcels.tar.gz -C /var/www/html/cloudera-repos/keytrustee-server --strip-components=1

sudo chmod -R ugo+rX /var/www/html/cloudera-repos/keytrustee-server

Cloudera Navigator Key Trustee KMS and HSM KMS

注:Cloudera Navigator HSM KMS 包含在Key Trustee KMS包裹中。

进入密钥托管KMS下载页面。从“选择下载类型”下拉菜单中选择包裹,然后单击“立即下载”。这将下载密钥受托人KMS的包裹和manifest.json文件在.tar.gz文件。将文件复制到Web服务器,并使用tar xvfz filename.tar.gz命令解压缩文件。这个例子使用了密钥受托方KMS 5.14.0:

sudo mkdir -p /var/www/html/cloudera-repos/keytrustee-kms
sudo tar xvfz /path/to/keytrustee-kms-5.14.0-parcels.tar.gz -C /var/www/html/cloudera-repos/keytrustee-kms --strip-components=1
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/keytrustee-kms

Sqoop连接器

要下载Sqoop连接器版本的包,请在Web服务器主机上运行以下命令。这个例子使用了最新的Sqoop连接器:

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories http://archive.cloudera.com/sqoop-connectors/parcels/latest/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/sqoop-connectors

如果您想为不同的Sqoop连接器版本创建存储库,请将latest 替换为您想要的Sqoop连接器版本。您可以在parcels父目录中看到版本列表。

  1. 在浏览器中访问存储库URL http:///cloudera-repos/,验证下载的文件是否存在。如果您没有看到任何内容,那么您的Web服务器可能已配置为不显示索引。
配置Cloudera Manager以使用内部远程包裹存储库
  1. 使用下列方法之一打开包裹设置页:

导航栏

​ a. 单击顶部导航栏中的包裹图标或单击主机并单击包裹选项卡。

​ b. 单击Configuration按钮。

菜单

​ a. 选择管理>设置

​ b. 选择类别>包裹

  1. 在“远程包裹存储库url”列表中,单击“添加”符号以打开另一行。

  2. 输入到包裹的路径。例如:http:// < web_server > / cloudera-parcels / cdh6/6.2.1 /

  3. 输入更改的原因,然后单击Save Changes以提交更改。

使用本地包存储库

要使用本地包裹存储库,请完成以下步骤:

  1. 打开Cloudera Manager管理控制台并导航到包裹页面。

  2. 选择配置并验证是否设置了本地包裹存储库路径。默认情况下,目录为/opt/cloudera/ package -repo

  3. 删除任何你不使用的远程包裹存储库url,包括指向Cloudera档案的url。

  4. 将要使用的包裹添加到指定的本地包裹存储库目录。有关下载包裹的说明,请参阅下载和发布上面的包裹存储库。

  5. 在命令行中,导航到本地包裹存储库目录。

  6. 为添加的包裹创建一个SHA1哈希,并将其保存到一个名为parcel_name. package .sha的文件中。例如,以下命令为包裹CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel生成一个SHA1验证信息:

    sha1sum CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel | awk '{ print $1 }' > CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha
    
  7. 将包裹和散列文件的所有权更改为cloudera-scm

sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
  1. 在Cloudera Manager管理控制台,导航到Parcels页面。
  2. 单击“检查新包裹”并验证新包裹是否出现。
  3. 下载、分发和激活包裹。

配置本地Package 存储库

您可以为Cloudera Manager创建一个包存储库,方法是托管一个内部web存储库,或者手动将存储库文件复制到Cloudera Manager服务器主机,以便分发到Cloudera Manager代理主机上。

重要提示:为下载的Cloudera Manager或CDH选择一个支持的操作系统。参见CDH和Cloudera管理器支持的操作系统。

创建永久的内部存储库

下面的部分描述了如何使用Apache HTTP服务器创建一个永久的内部存储库:

安装Web服务器

要托管内部存储库,您必须在Cloudera Manager主机可访问的内部主机上安装或使用现有的Web服务器,然后将存储库文件下载到Web服务器主机。本节中的示例使用Apache HTTP服务器作为Web服务器。如果您的组织中已经有一个Web服务器,那么可以直接下载并发布包存储库。

  1. Install Apache HTTP Server:

    sudo yum install httpd
    
  2. Start Apache HTTP Server:

    sudo systemctl start httpd
    
下载并发布包存储库
  1. 下载您想要安装的产品的包存储库:

CM6

要下载最新的Cloudera Manager 6.2版本的文件,请下载您的操作系统的存储库压缩包。

sudo mkdir -p /var/www/html/cloudera-repos/cm6
wget https://archive.cloudera.com/cm6/6.2.1/repo-as-tarball/cm6.2.1-redhat7.tar.gz
tar xvfz cm6.2.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1

注意:Cloudera Enterprise 6.x不支持Redhat/Centos 5。

sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6

CDH 6

要下载最新CDH 6.2版本的文件,请在Web服务器主机上运行以下命令。

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.1/redhat7/ -P /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.1/redhat7/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6

如果您想为不同的CDH 6版本创建存储库,请将6.2.1替换为您想要的CDH 6版本。有关更多信息,请参见cdh6下载信息。

CM 5

CDH5

如果希望为不同的CDH版本或操作系统创建存储库,请从repo-as-tarball父目录开始,选择要使用的CDH版本,然后为操作系统复制.tar.gz链接。

Apache Accumulo for CDH

要下载用于CDH的Accumulo发行版的文件,请在Web服务器主机上运行以下命令。

sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/accumulo-c5/redhat/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/accumulo-c5

Cloudera Navigator Key Trustee Server

转到密钥托管服务器下载页面。从“选择下载类型”下拉菜单中选择软件包,从“选择操作系统”下拉菜单中选择操作系统,然后单击“立即下载”。这将下载.tar.gz文件中的密钥托管服务器包文件。将文件复制到Web服务器,并使用tar xvfz filename.tar.gz命令解压缩文件。这个例子使用了密钥托管服务器5.14.0:

sudo mkdir -p /var/www/html/cloudera-repos/keytrustee-server
sudo tar xvfz /path/to/keytrustee-server-5.14.0-parcels.tar.gz -C /var/www/html/cloudera-repos/keytrustee-server --strip-components=1
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/keytrustee-kms
  1. 在浏览器中访问存储库URL http:///cloudera-repos/,验证下载的文件是否存在。如果您没有看到任何内容,那么您的Web服务器可能已配置为不显示索引。
创建临时内部存储库

可以快速创建临时远程存储库,一次性部署包。Cloudera建议使用运行Cloudera管理器的主机,或者网关主机。这个示例使用Python SimpleHTTPServer作为Web服务器来托管/var/www/html目录,但是您可以使用不同的目录。

  1. 按照下载和发布包存储库的说明下载所需的存储库。
  2. 确定系统没有监听的端口。此示例使用端口8900。
  3. /var/www/html目录下启动Python SimpleHTTPServer:
cd /var/www/html
python -m SimpleHTTPServer 8900
Serving HTTP on 0.0.0.0 port 8900 ...
  1. 在浏览器中访问存储库URL http://:8900/cloudera-repos/,验证下载的文件是否存在。
配置主机以使用内部存储库

建立存储库后,修改客户端配置以使用:

OS Procedure
**RHEL 兼容 Create /etc/yum.repos.d/cloudera-repo.repo files on cluster hosts with the following content, where is the hostname of the Web server:
[cloudera-repo] name=cloudera-repo baseurl=http:///cm/5 enabled=1 gpgcheck=0
SLES Use the zypper utility to update client system repository information by issuing the following command:zypper addrepo http:///cm
Ubuntu Create /etc/apt/sources.list.d/cloudera-repo.list files on all cluster hosts with the following content, where is the hostname of the Web server:deb http:///cm You can find the and variables in the ./conf/distributions file in the repository.After creating the .list file, run the following command:sudo apt-get update

手动安装Cloudera软件包

本主题展示了如何手动安装Cloudera软件包,即Cloudera Manager和CDH。这对于不能使用Cloudera Manager安装所需软件包的环境非常有用,比如不允许无密码sudo的组织。

虽然你可以手动安装软件包,但Cloudera不支持没有Cloudera管理器部署和管理的集群。

注意:如果您选择使用这些说明手动安装CDH,您不能使用Cloudera管理器安装额外的包裹。这可以阻止您使用只能通过包裹提供的服务。

安装Cloudera Manager包
  1. 在Cloudera Manager服务器主机上,键入以下命令来安装Cloudera Manager包。
OS Command
RHEL, CentOS, Oracle Linux sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
SLES sudo zypper install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
Ubuntu sudo apt-get install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  1. 如果您为Cloudera Manager服务器使用Oracle数据库,请在Cloudera Manager服务器主机上编辑/etc/default/cloudera-scm-server文件。找到以export_CMF_JAVA_OPTS开始的行,并将-Xmx2G选项更改为-Xmx4G
手动安装Cloudera Manager Agent包

Cloudera Manager代理负责启动和停止进程、解压缩配置、触发安装和监视集群中的所有主机。您可以在所有主机上手动安装Cloudera Manager代理,或者在以后的步骤中安装代理。要使用Cloudera Manager安装代理,请跳过本节。

要手动安装Cloudera Manager Agent包,请在每个集群主机(包括那些将运行一个或多个Cloudera管理服务角色的主机:服务监视器、活动监视器、事件服务器、警报发布者或报告管理器)上执行以下操作:

  1. 使用以下命令之一安装Cloudera Manager代理包
OS Command
RHEL, if you have a yum repo configured: $ sudo yum install cloudera-manager-agent cloudera-manager-daemons
RHEL, if you’re manually transferring RPMs: $ sudo yum --nogpgcheck localinstall cloudera-manager-agent-package.*.x86_64.rpm cloudera-manager-daemons
SLES $ sudo zypper install cloudera-manager-agent cloudera-manager-daemons
Ubuntu or Debian $ sudo apt-get install cloudera-manager-agent cloudera-manager-daemons
  1. 在每个集群主机上,通过在**/etc/ cloudera -scm- Agent /config.ini**配置文件中设置以下属性,配置Cloudera Manager代理指向Cloudera Manager服务器:
Property Description
server_host 运行Cloudera管理器服务器的主机名。
server_port 运行Cloudera管理器服务器的ip。

有关代理配置选项的更多信息,请参见代理配置文件。

  1. 通过在所有主机上运行以下命令来启动代理

RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher

sudo systemctl start cloudera-scm-agent

如果代理启动时没有错误,则不会显示响应。

RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04

sudo service cloudera-scm-agent start

你将看到如下结果

Starting cloudera-scm-agent: [ OK ]

当代理启动时,它会联系Cloudera Manager服务器。如果Cloudera Manager代理和Cloudera Manager服务器之间的通信失败,请参阅安装问题排除。当代理主机重新启动时,cloudra -scm- Agent将自动启动。

手动安装CDH包

要手动安装CDH包,请在每个集群主机上执行以下操作:

  1. 使用ssh登录到集群中的每个主机。
  2. 运行以下命令

RHEL / CentOS

sudo yum install avro-tools bigtop-jsvc bigtop-utils flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite keytrustee-keyprovider kudu oozie parquet parquet-format pig search sentry sentry-hdfs-plugin solr solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper

SLES

sudo zypper install avro-tools bigtop-jsvc bigtop-utils flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite keytrustee-keyprovider kudu oozie parquet parquet-format pig search sentry sentry-hdfs-plugin solr solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper

Debian / Ubuntu

sudo apt-get install avro-tools bigtop-jsvc bigtop-utils flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite keytrustee-keyprovider kudu oozie parquet parquet-format pig search sentry sentry-hdfs-plugin solr solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper

创建集群主机的虚拟映像

您可以使用预先部署的Cloudera软件创建虚拟机映像,例如PXE-boot映像、Amazon ami和Azure VM映像的集群主机,您可以使用该软件快速启动虚拟机。这些图像使用包裹来安装CDH软件。本主题描述创建Cloudera Manager主机和worker主机的映像的过程,以及如何从这些映像实例化主机。

创建预部署的Cloudera管理器主机

创建一个Cloudera Manager虚拟机镜像:

  1. 基于受支持的操作系统实例化虚拟机映像(如果使用Amazon Web Services,则为AMI)并启动虚拟机。有关虚拟化环境的详细信息,请参阅文档。

  2. 安装Cloudera管理器并配置数据库。您可以配置本地或远程数据库。

  3. 等待Cloudera Manager管理控制台激活。

  4. 登录到Cloudera Manager管理控制台。

  5. 下载CDH或Cloudera管理器管理的其他服务的任何包裹。不要分发或激活包裹。

  6. 登录到Cloudera Manager服务器主机:

    a. 运行以下命令来停止Cloudera管理器服务:

service cloudera-scm-server stop

​ b. 运行以下命令来禁用cloudera-scm-server服务的自动启动:

  • RHEL6.x, CentOS 6.x and SUSE:

    chkconfig cloudera-scm-server off
    
  • RHEL 7.x /CentOS 7.x.x:

    systemctl disable cloudera-scm-server.service
    
  • Ubuntu:

    update-rc.d -f cloudera-scm-server remove
    
  1. 建Cloudera Manager主机的映像。有关虚拟化环境的详细信息,请参阅文档。

  2. 如果您在远程主机上安装了Cloudera Manager数据库,还需要创建数据库主机的映像。

注意:确保在创建映像时没有使用远程数据库的客户机。

实例化一个Cloudera管理器映像

要从虚拟机映像创建一个新的Cloudera Manager实例:

  1. 实例化Cloudera管理器映像。

  2. 如果Cloudera Manager数据库托管在远程主机上,还实例化数据库主机映像。

  3. 在Cloudera Manager主机上运行以下命令,确保Cloudera -scm-server服务没有运行:

    service cloudera-scm-server status
    

    如果它正在运行,请使用以下命令停止它:

    service cloudera-scm-server stop
    
  4. 在Cloudera Manager主机上,在/etc/cloudera-scm-server目录中创建一个名为uuid的文件。使用下面的命令为这个文件添加一个全局唯一标识符:

    cat /proc/sys/kernel/random/uuid > /etc/cloudera-scm-server/uuid
    

    这个文件的存在通知Cloudera Manager在启动时重新初始化它自己的唯一标识符。

  5. 运行以下命令启动Cloudera管理器服务

    service cloudera-scm-server start
    
  6. 运行以下命令启用cloudera-scm-server的自动重启

    • RHEL6.x, CentOS 6.x and SUSE:

      chkconfig cloudera-scm-server on
      
    • RHEL 7.x /CentOS 7.x.x:

      systemctl enable cloudera-scm-server.service
      
    • Ubuntu:

      update-rc.d -f cloudera-scm-server defaults
      
创建预部署的工作程序主机
  1. 基于受支持的操作系统实例化虚拟机映像(如果使用Amazon Web Services,则为AMI)并启动虚拟机。有关虚拟化环境的详细信息,请参阅文档。

  2. 从公共包裹存储库或您创建的存储库下载worker主机所需的包裹,并将它们保存到临时目录中。查看Cloudera Manager 6版本并下载相关信息。

  3. 从下载包裹的同一位置下载parcel_name.parcel。每个包裹的sha1文件。

  4. 计算并比较下载的包裹的sha1,以确保包裹被正确下载。例如:

    sha1sum KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel | awk '{print $1}' > KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel.sha
    
    diff KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel.sha1 KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel.sha
    
  5. 打开包裹:

    1. 创建以下目录:

      • /opt/cloudera/parcels
      • /opt/cloudera/parcel-cache
    2. 设置刚刚创建的两个目录的所有权,以便它们属于Cloudera Manager代理运行时的用户名。

    3. 使用以下命令设置每个目录的权限:

      chmod 755 directory
      

      注意,这些目录的内容是公开的,可以安全地标记为全世界可读的。

    4. 作为运行Cloudera Manager代理的同一用户运行,使用以下命令从临时目录中提取包的内容:

      tar -zxvf parcelfile -C /opt/cloudera/parcels/
      
    5. 从每个包裹的产品名称添加一个符号链接到/opt/cloudera/ packages目录。

      例如,要将/opt/cloudera/ packages /CDH-6.0.0-1.cdh6.0.0.p0.309038链接到/opt/cloudera/ packages /CDH,可以使用以下命令:

      ln -s /opt/cloudera/parcels/CDH-6.0.0-1.cdh6.0.0.p0.309038 /opt/cloudera/parcels/CDH
      
    6. 通过在/opt/ Cloudera / packages目录的每个子目录中添加.dont_delete标记文件(该文件没有内容),在启动时标记不被Cloudera Manager代理删除的包裹。例如:

      touch /opt/cloudera/parcels/CDH/.dont_delete
      
  6. 验证文件存在:

    ls -l /opt/cloudera/parcels/parcelname
    

    您应该会看到类似如下的输出:

    ls -al /opt/cloudera/parcels/CDH
    total 100
    drwxr-xr-x  9 root root  4096 Sep 14 14:53 .
    drwxr-xr-x  9 root root  4096 Sep 14 06:34 ..
    drwxr-xr-x  2 root root  4096 Sep 12 06:39 bin
    -rw-r--r--  1 root root     0 Sep 14 14:53 .dont_delete
    drwxr-xr-x 26 root root  4096 Sep 12 05:10 etc
    drwxr-xr-x  4 root root  4096 Sep 12 05:04 include
    drwxr-xr-x  2 root root 69632 Sep 12 06:44 jars
    drwxr-xr-x 37 root root  4096 Sep 12 06:39 lib
    drwxr-xr-x  2 root root  4096 Sep 12 06:39 meta
    drwxr-xr-x  5 root root  4096 Sep 12 06:39 share
    
  7. 安装Cloudera管理器代理。如果还没有这样做,请执行第1步:为Cloudera Manager配置存储库。

  8. 创建worker主机的映像。有关虚拟化环境的详细信息,请参阅文档。

实例化工作主机
  1. 实例化Cloudera worker主机映像。

  2. 编辑以下文件并设置server_host和server_port属性以引用Cloudera Manager服务器主机。

  3. 如果需要,执行其他步骤来配置TLS/SSL。参见为Cloudera管理器配置TLS加密。

  4. 启动代理服务:

    service cloudera-scm-agent start
    

配置自定义Java目录位置

注意:Cloudera强烈建议在/usr/java/ JDK版本安装JDK,这允许Cloudera管理器自动检测和使用正确的JDK版本。如果你在其他地方安装JDK,你必须按照这些说明配置Cloudera管理器到你选择的位置。下面的过程仅更改Cloudera管理服务和CDH集群进程的JDK位置。它不会影响其他非cloudera进程或网关角色使用的JDK。

Cloudera服务需要的Oracle Java Development Kit (JDK),虽然不推荐,但如果需要,可以在自定义位置安装。这些步骤假设您已经安装了JDK,如第2步:安装Java Development Kit中所述。

修改Cloudera Manager 配置,确保JDK可以找到:

  1. 打开Cloudera Manager管理控制台。
  2. 在主导航栏中,单击主机选项卡。如果只在特定主机上配置JDK位置,请单击该主机的链接。
  3. 单击配置选项卡。
  4. 选择类别>高级
  5. Java主目录属性设置为自定义位置。
  6. 点击保存更改
  7. 重新启动所有服务。

使用Cloudera管理器模板创建CDH集群

注意:此页包含对cdh5组件或从cdh6中删除的特性的引用。这些引用只适用于使用Cloudera Manager 6管理cdh5集群的情况。有关更多信息,请参见已弃用的项。

通过从现有的由Cloudera Manager管理的CDH集群导出集群模板,可以创建新的CDH集群。然后可以修改模板,并使用它在一组新的主机上创建具有相同配置的新集群。使用集群模板:

  • 复制集群以便在开发人员、测试和生产环境中使用。
  • 为特定的工作负载快速创建集群。
  • 重新生成用于测试和调试的生产集群。

按照以下常规步骤创建模板和新集群:

  1. 从源集群导出集群配置。导出的配置是一个JSON文件,它详细说明了集群的所有配置。
    JSON文件包含一个实例化器部分,其中包含在创建新集群之前必须提供的一些值。请参见导出集群配置。
  2. 通过在所有主机上安装Cloudera Manager代理和JDK,为新集群设置主机。
    对于安全集群,还需要在Cloudera Manager中配置一个Kerberos密钥分发中心(KDC)。
    参见准备新集群
  3. 创建集群所需的任何本地存储库。请参阅第1步:为Cloudera管理器配置存储库。
  4. 完成集群配置JSON文档的实例化器部分以创建模板。
    参见创建模板。
  5. 将集群模板导入到新集群。请参阅将模板导入到新集群。
导出集群配置

要创建集群模板,首先从源集群导出配置。集群必须由Cloudera管理器运行和管理。

要导出配置:

  1. 您创建的任何主机模板都将用于导出配置。如果不想在新集群中使用这些模板,请删除它们。在Cloudera管理器中,进入主机>主机模板,点击你想删除的主机模板旁边的删除按钮。
  2. 删除任何由Cloudera Manager安装向导创建的主机模板。它们通常有一个像Template - 1这样的名称。
  3. 运行以下命令下载JSON配置文件到一个方便的位置进行编辑:
curl -u admin_username:admin_user_password
"http://Cloudera Manager URL/api/v12/clusters/Cluster name/export" >
path_to_file/file_name.json

例如

curl -u adminuser:adminpass "http://myCluster-1.myDomain.com:7180/api/v12/clusters/Cluster1/export" > myCluster1-template.json
准备新集群
  • 将集群模板导入其中的新集群必须满足以下要求:
  • Cloudera Manager的数据库已经安装配置完成。
  • Cloudera Manager已经安装完成并在运行中。
  • CDH服务所需的所有数据库已经安装完成。请参见步骤4:安装和配置数据库。
  • 所有集群主机上JDK已经安装。
  • Cloudera Manager Agent已经安装和配置在所有集群主机上。
  • 如果源集群使用Kerberos,那么新集群必须具有在Cloudera Manager中配置的KDC属性和特权。
  • 如果源集群使用包来安装CDH和托管服务,则在导入模板之前手动安装这些包。参见Cloudera Manager软件管理概述。
创建模板

要创建模板,请修改下载的JSON文件的instantiator 部分。包含字符串的行需要一个必须提供的值。下面是示例instantiator样例:

"instantiator" : {
    "clusterName" : "",
    "hosts" : [ {
      "hostName" : "",
      "hostTemplateRefName" : "",
      "roleRefNames" : [ "HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e" ]
    }, {
      "hostName" : "",
      "hostTemplateRefName" : ""
    }, {
      "hostNameRange" : "",
      "hostTemplateRefName" : ""
    } ],
    "variables" : [ {
      "name" : "HDFS-1-NAMENODE-BASE-dfs_name_dir_list",
      "value" : "/dfs/nn"
    }, {
      "name" : "HDFS-1-SECONDARYNAMENODE-BASE-fs_checkpoint_dir_list",
      "value" : "/dfs/snn"
    }, {
      "name" : "HIVE-1-hive_metastore_database_host",
      "value" : "myCluster-1.myDomain.com"
    }, {
      "name" : "HIVE-1-hive_metastore_database_name",
      "value" : "hive1"
    }, {
      "name" : "HIVE-1-hive_metastore_database_password",
      "value" : ""
    }, {
      "name" : "HIVE-1-hive_metastore_database_port",
      "value" : "3306"
    }, {
      "name" : "HIVE-1-hive_metastore_database_type",
      "value" : "mysql"
    }, {
      "name" : "HIVE-1-hive_metastore_database_user",
      "value" : "hive1"
    }, {
      "name" : "HUE-1-database_host",
      "value" : "myCluster-1.myDomain.com"
    }, {
      "name" : "HUE-1-database_name",
      "value" : "hueserver0be88b55f5dedbf7bc74d61a86c0253e"
    }, {
      "name" : "HUE-1-database_password",
      "value" : ""
    }, {
      "name" : "HUE-1-database_port",
      "value" : "3306"
    }, {
      "name" : "HUE-1-database_type",
      "value" : "mysql"
    }, {
      "name" : "HUE-1-database_user",
      "value" : "hueserver0be88b5"
    }, {
      "name" : "IMPALA-1-IMPALAD-BASE-scratch_dirs",
      "value" : "/impala/impalad"
    }, {
      "name" : "KUDU-1-KUDU_MASTER-BASE-fs_data_dirs",
      "value" : "/var/lib/kudu/master"
    }, {
      "name" : "KUDU-1-KUDU_MASTER-BASE-fs_wal_dir",
      "value" : "/var/lib/kudu/master"
    }, {
      "name" : "KUDU-1-KUDU_TSERVER-BASE-fs_data_dirs",
      "value" : "/var/lib/kudu/tserver"
    }, {
      "name" : "KUDU-1-KUDU_TSERVER-BASE-fs_wal_dir",
      "value" : "/var/lib/kudu/tserver"
    }, {
      "name" : "MAPREDUCE-1-JOBTRACKER-BASE-jobtracker_mapred_local_dir_list",
      "value" : "/mapred/jt"
    }, {
      "name" : "MAPREDUCE-1-TASKTRACKER-BASE-tasktracker_mapred_local_dir_list",
      "value" : "/mapred/local"
    }, {
      "name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_host",
      "value" : "myCluster-1.myDomain.com:3306"
    }, {
      "name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_name",
      "value" : "oozieserver0be88b55f5dedbf7bc74d61a86c0253e"
    }, {
      "name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_password",
      "value" : ""
    }, {
      "name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_type",
      "value" : "mysql"
    }, {
      "name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_user",
      "value" : "oozieserver0be88"
    }, {
      "name" : "YARN-1-NODEMANAGER-BASE-yarn_nodemanager_local_dirs",
      "value" : "/yarn/nm"
    }, {
      "name" : "YARN-1-NODEMANAGER-BASE-yarn_nodemanager_log_dirs",
      "value" : "/yarn/container-logs"
    } ]
  }

要修改模板:

  1. 更新hosts部分。

    如果您在源集群中定义了主机模板,那么它们将出现在JSON模板的hostTemplates部分中。对于不使用主机模板的主机,导出流程根据角色分配创建主机模板,以方便创建新集群。无论哪种情况,都必须将hostTemplates部分中的项与instantiator部分中的hosts部分匹配。

    下面是hostTemplates部分的一个例子,来自与上面的instantiator部分相同的JSON文件:

"hostTemplates" : [ {
    "refName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
    "cardinality" : 1,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-GATEWAY-BASE", "HBASE-1-HBASETHRIFTSERVER-BASE", "HBASE-1-MASTER-BASE", "HDFS-1-BALANCER-BASE", "HDFS-1-GATEWAY-BASE", "HDFS-1-NAMENODE-BASE", "HDFS-1-NFSGATEWAY-BASE", "HDFS-1-SECONDARYNAMENODE-BASE", "HIVE-1-GATEWAY-BASE", "HIVE-1-HIVEMETASTORE-BASE", "HIVE-1-HIVESERVER2-BASE", "HUE-1-HUE_LOAD_BALANCER-BASE", "HUE-1-HUE_SERVER-BASE", "IMPALA-1-CATALOGSERVER-BASE", "IMPALA-1-STATESTORE-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KS_INDEXER-1-HBASE_INDEXER-BASE", "KUDU-1-KUDU_MASTER-BASE", "MAPREDUCE-1-GATEWAY-BASE", "MAPREDUCE-1-JOBTRACKER-BASE", "OOZIE-1-OOZIE_SERVER-BASE", "SOLR-1-SOLR_SERVER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SPARK_ON_YARN-1-SPARK_YARN_HISTORY_SERVER-BASE", "SQOOP-1-SQOOP_SERVER-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-GATEWAY-BASE", "YARN-1-JOBHISTORY-BASE", "YARN-1-RESOURCEMANAGER-BASE", "ZOOKEEPER-1-SERVER-BASE" ]
  }, {
    "refName" : "HostTemplate-1-from-myCluster-4.myDomain.com",
    "cardinality" : 1,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
  }, {
    "refName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com",
    "cardinality" : 2,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
  } ]

cardinality 的值指示给源集群中的主机模板分配了多少台主机。

roleConfigGroupsRefNames的值指示将哪些角色组分配给主机。对hostTemplates部分中的每个主机模板执行以下操作:

  • instantiatorhosts部分中找到您希望安装角色的条目。
  • refName的值复制到hostTemplateRefName的值。
  • 在新集群中输入主机名作为主机名的值。对于具有相同角色集的多台主机的集群,一些主机部分可能会使用hostNameRange。使用下列其中之一指示主机范围:
    • [];例如,myhost[1-4].foo.com
    • 由逗号分隔的主机名字符串;例如,host-1.domain, host-2.domain, host-3.domain

下面是instantiatorhostTemplateshosts部分正确完成的一个例子:

"hostTemplates" : [ {
    "refName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
    "cardinality" : 1,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-GATEWAY-BASE", "HBASE-1-HBASETHRIFTSERVER-BASE", "HBASE-1-MASTER-BASE", "HDFS-1-BALANCER-BASE", "HDFS-1-GATEWAY-BASE", "HDFS-1-NAMENODE-BASE", "HDFS-1-NFSGATEWAY-BASE", "HDFS-1-SECONDARYNAMENODE-BASE", "HIVE-1-GATEWAY-BASE", "HIVE-1-HIVEMETASTORE-BASE", "HIVE-1-HIVESERVER2-BASE", "HUE-1-HUE_LOAD_BALANCER-BASE", "HUE-1-HUE_SERVER-BASE", "IMPALA-1-CATALOGSERVER-BASE", "IMPALA-1-STATESTORE-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KS_INDEXER-1-HBASE_INDEXER-BASE", "KUDU-1-KUDU_MASTER-BASE", "MAPREDUCE-1-GATEWAY-BASE", "MAPREDUCE-1-JOBTRACKER-BASE", "OOZIE-1-OOZIE_SERVER-BASE", "SOLR-1-SOLR_SERVER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SPARK_ON_YARN-1-SPARK_YARN_HISTORY_SERVER-BASE", "SQOOP-1-SQOOP_SERVER-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-GATEWAY-BASE", "YARN-1-JOBHISTORY-BASE", "YARN-1-RESOURCEMANAGER-BASE", "ZOOKEEPER-1-SERVER-BASE" ]
  }, {
    "refName" : "HostTemplate-1-from-myCluster-4.myDomain.com",
    "cardinality" : 1,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
  }, {
    "refName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com",
    "cardinality" : 2,
    "roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
  } ],
  "instantiator" : {
    "clusterName" : "myCluster_new",
    "hosts" : [ {
      "hostName" : "myNewCluster-1.myDomain.com",
      "hostTemplateRefName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
      "roleRefNames" : [ "HDFS-1-NAMENODE-c975a0b51fd36e914896cd5e0adb1b5b" ]
    }, {
      "hostName" : "myNewCluster-5.myDomain.com",
      "hostTemplateRefName" : "HostTemplate-1-from-myCluster-4.myDomain.com"
    }, {
      "hostNameRange" : "myNewCluster-[3-4].myDomain.com",
      "hostTemplateRefName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com"
    } ],
  1. 对于具有roleRefNames行的主机部分,确定角色类型并为角色分配适当的主机。如果角色有多个实例,则必须选择正确的主机。要确定角色类型,请在模板文件中搜索roleRefNames的值。例如:对于一个名为HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e的角色ref,如果您搜索该字符串,您会发现类似于下面的部分:

    "roles": [
    {
    "refName": "HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e",
    "roleType": "NAMENODE"
    }
    ]
    

在本例中,角色类型是NAMENODE

  1. 修改变量部分。此部分包含来自源集群的各种属性。您可以在新集群中更改这些值中的任何一个,使之不同,也可以保留从源复制的值。对于显示为的任何值,必须提供正确的值。

注:许多这些变量包含关于Hive Metastore和其他CDH组件所使用的数据库的信息。更改这些变量的值以匹配为新集群配置的数据库。

  1. 在“clusterName”一行上输入新集群的内部名称:"clusterName" : ""。例如:
"displayName" : "myNewCluster",
将模板导入到新集群

导入集群模板:

以root身份登录到Cloudera Manager服务器。

运行以下命令导入模板。如果您在源集群中配置了远程存储库url,那么在命令后添加? addreposesse =true

curl -X POST -H "Content-Type: application/json" -d
      @path_to_template/template_filename.json
http://admin_user:admin_password@cloudera_manager_url:cloudera_manager_port/api/v12/cm/importClusterTemplate

您应该会看到类似如下的响应:

{
  "id" : 17,
  "name" : "ClusterTemplateImport",
  "startTime" : "2016-03-09T23:44:38.491Z",
  "active" : true,
  "children" : {
    "items" : [ ]
  }

实例

curl -X POST -H "Content-Type: application/json" -d @myTemplate.json http://admin:[email protected]:7182/api/v12/cm/importClusterTemplate
curl -X POST -H "Content-Type: application/json" -d @myTemplate.json http://admin:[email protected]:7182/api/v12/cm/importClusterTemplate?addRepositories=true

如果没有响应,或者收到错误消息,JSON文件可能格式不正确,或者模板可能有无效的主机名或无效的引用。检查JSON文件,纠正所有错误,然后重新运行命令

  1. 在浏览器中打开新集群的Cloudera管理器,点击Cloudera管理器的标志进入主页。

  2. 单击所有最新命令选项卡。如果导入正在进行,您应该会看到一个标记为import Cluster Template的链接。单击该链接查看导入的进度。
    如果任何命令失败,纠正问题并单击重试。你可能需要编辑一些属性在Cloudera管理器。

导入模板后,Cloudera Manager应用自动配置规则,为各种角色设置诸如内存和CPU分配等属性。
如果新集群有不同的硬件或操作需求,则可能需要修改这些值。

样本Python代码

您可以使用用Python或其他语言编写的客户机,执行以编程方式导出和导入集群模板的步骤。(您还可以使用上面提供的curl命令。)

Python导出示例:
resource = ApiResource("myCluster-1.myDomain.com", 7180, "admin", "admin", version=12)
cluster = resource.get_cluster("Cluster1");
template = cluster.export(False)
pprint(template)
Python导入示例:
resource = ApiResource("localhost", 8180, "admin", "admin", version=12)
 with open('~/cluster-template.json') as data_file:
   data = json.load(data_file)
template = ApiClusterTemplate(resource).from_json_dict(data, resource)
cms = ClouderaManager(resource)
cms.import_cluster_template(template)

CM中的服务依赖

下表列出了Cloudera Manager部署中各种服务之间存在的服务依赖关系。在为Cloudera Manager配置服务时,请参阅下面的表以获得适当的版本。

分别列出了Spark 2对YARN和Cloudera Data Science Workbench的服务依赖关系。

6.2版本服务依赖

Service Dependencies Optional Dependencies
ADLS Connector
AWS S3
Data Context Connector
Flume Solr
HDFS or Isilon
HBase
Kafka
HBase ZooKeeper
HDFS or Isilon
HDFS ADLS Connector or AWS S3
KMS, Thales KMS, Key Trustee, or Luna KMS
ZooKeeper
Hive YARN Spark on YARN
HBase
Sentry
ZooKeeper
Kudu
Hue Oozie
Hive
Solr
Sentry
Impala
ZooKeeper
HBase
Impala HDFS or Isilon
Hive
Kudu
YARN
ZooKeeper
Sentry
HBase
Kafka ZooKeeper Sentry
Key-Value Store Indexer HBase
Solr
Sentry
Oozie YARN Hive
ZooKeeper
Spark on YARN
Sentry HDFS or Isilon ZooKeeper
Solr HDFS or Isilon
ZooKeeper
Sentry
Spark on YARN YARN HBase
YARN HDFS or Isilon ZooKeeper
ZooKeeper

6.1版本服务依赖关系

Service Dependencies Optional Dependencies
ADLS Connector
AWS S3
Data Context Connector
Flume Solr
HDFS or Isilon
HBase
Kafka
HBase HDFS or Isilon
ZooKeeper
HDFS ADLS Connector or AWS S3
KMS, Thales KMS, Key Trustee, or Luna KMS
ZooKeeper
Hive YARN Spark on YARN
HBase
Sentry
ZooKeeper
Hue Oozie
Hive
Solr
Sentry
Impala
ZooKeeper
HBase
Impala HDFS or Isilon
Hive
Kudu
YARN
ZooKeeper
Sentry
HBase
Kafka ZooKeeper Sentry
Key-Value Store Indexer HBaseSolr Sentry
Kudu
Oozie YARN Hive
ZooKeeper
Spark on YARN
Sentry HDFS or Isilon ZooKeeper
Solr HDFS or Isilon
ZooKeeper
Sentry
YARN HDFS or Isilon ZooKeeper
ZooKeeper

6.0版本服务依赖关系

Service Dependencies Optional Dependencies
Accumulo C6 HDFS or Isilon
ZooKeeper
ADLS Connector
AWS S3
Data Context Connector
Flume Solr
HDFS or Isilon
HBase
Kafka
HBase HDFS or Isilon
ZooKeeper
HDFS ADLS Connector or AWS S3
KMS, Thales KMS, Key Trustee, or Luna KMS
ZooKeeper
Hive YARN Spark on YARN
HBase
Sentry
ZooKeeper
Hue Oozie
Hive
Solr
Sentry
Impala
ZooKeeper
HBase
Impala HDFS or Isilon
Hive
Kudu
YARN
ZooKeeper
Sentry
HBase
Kafka ZooKeeper Sentry
Key Trustee ZooKeeper
KMS
Key-Value Store Indexer HBaseSolr Sentry
Kudu
Luna KMS ZooKeeper
Oozie YARN Hive
ZooKeeper
Spark on YARN
Sentry HDFS or Isilon ZooKeeper
Solr HDFS or Isilon
ZooKeeper
Sentry
Spark on YARN YARN HBase
Sqoop Client
Thales KMS ZooKeeper
YARN HDFS or Isilon ZooKeeper
ZooKeeper

5.16版本服务依赖关系

Service Dependencies Optional Dependencies
ADLS Connector
AWS S3
Data Context Connector
Flume Solr
HDFS or Isilon
HBase
Kafka
HBase HDFS or Isilon
ZooKeeper
HDFS ADLS Connector or AWS S3
KMS, Thales KMS, Key Trustee, or Luna KMS
ZooKeeper
Hive MapReduce or YARN Spark on YARN
HBase
Sentry
ZooKeeper
Hue OozieHive Sqoop
Solr
Sentry
Impala
ZooKeeper
HBase
Impala HDFS or Isilon
Hive
Kudu
YARN
ZooKeeper
Sentry
HBase
Key-Value Store Indexer HBase
Solr
Sentry
Kudu
MapReduce HDFS or Isilon ZooKeeper
Oozie MapReduce or YARN Hive
ZooKeeper
Spark on YARN
Sentry HDFS or Isilon ZooKeeper
Solr HDFS or Isilon
ZooKeeper
Sentry
Sqoop MapReduce or YARN
YARN HDFS or Isilon ZooKeeper
ZooKeeper

更多版本的依赖参见依赖

Cloudera Data Science Workbench 1.5.0服务依赖关系

Service Dependencies Optional Dependencies
CDSW/CDH6 YARNSpark 2 on YARN HDFSHBaseHiveSolrSentry
CDSW/CDH5

Spark 2 on YARN 的服务依赖

Spark 2 Version Dependencies Optional Dependencies
2.3.4 YARN HBaseHive
2.2.4 YARN Hive
2.1.4 YARN Hive
|

| Hue | OozieHive | Sqoop
Solr
Sentry
Impala
ZooKeeper
HBase |
| Impala | HDFS or Isilon
Hive | Kudu
YARN
ZooKeeper
Sentry
HBase |
| Key-Value Store Indexer | HBase
Solr | Sentry |
| Kudu | | |
| MapReduce | HDFS or Isilon | ZooKeeper |
| Oozie | MapReduce or YARN | Hive
ZooKeeper
Spark on YARN |
| Sentry | HDFS or Isilon | ZooKeeper |
| Solr | HDFS or Isilon
ZooKeeper | Sentry |
| Sqoop | MapReduce or YARN | |
| YARN | HDFS or Isilon | ZooKeeper |
| ZooKeeper | | |

更多版本的依赖参见依赖

Cloudera Data Science Workbench 1.5.0服务依赖关系

Service Dependencies Optional Dependencies
CDSW/CDH6 YARNSpark 2 on YARN HDFSHBaseHiveSolrSentry
CDSW/CDH5

Spark 2 on YARN 的服务依赖

Spark 2 Version Dependencies Optional Dependencies
2.3.4 YARN HBaseHive
2.2.4 YARN Hive
2.1.4 YARN Hive
2.0.2 YARN Hive

你可能感兴趣的:(手撕官方文档系列,大数据,运维,cloudera)