最近在学习cdh6的官方文档,网上也比较难找到中文的文档。
其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习了解,并分享出来和大家一起学习。
中文内容是本人的渣渣英文水平结合有道词典,谷歌翻译的结果,文中部分词语可能翻译的并不准确,希望大家多多提出意见,共同进步。
cdh6的官方中文文档系列长期更新,最后目标整理成gitbook,同大家交流学习。
最后,如果你觉得本文对你有用,希望点个赞给作者一点鼓励哈。
与其感慨路难行不如马上上路,诸位道友,共同学习,加油!-------天南第一剑修
本指南提供了在生产环境中安装Cloudera软件(包括Cloudera Manager、CDH和其他托管服务)的指导。
对于非生产环境(例如测试和概念验证用例),请参阅概念验证安装指南,了解简化的(但有限的)安装过程。
本指南包括以下部分:(本篇为安装前)
在安装Cloudera Manager、CDH和其他托管服务之前:
有关规划、最佳实践和建议,请查看您的环境的参考架构。例如,对于现场部署,请查看 Cloudera Enterprise Reference Architecture for Bare Metal Deployments (PDF)。
以下是您在开始安装之前应该注意的其他事项:
注意:这个页面包含对cdh5组件或特性的引用,这些组件或特性已经从cdh6中删除。这些引用只适用于使用Cloudera Manager 6管理cdh5集群的情况。有关更多信息,请参见移除的项目。
最小角色需求:完全管理员
Cloudera Manager在许多后台进程中跟踪服务、作业和应用程序的指标。所有这些指标都需要存储空间。根据组织的大小,这个存储可以是本地的,也可以是远程的,基于磁盘的,或者在数据库中,由您管理,或者由位于另一个位置的另一个团队管理。
大多数系统管理员都知道诸如/var/log/
这样的常用位置,并且知道这些位置需要有足够的空间。本主题帮助您规划Cloudera Manager Server 和 Cloudera Management Service用于存储指标和数据的存储需求和数据存储位置。
如果没有合理规划 Cloudera Manager Server和Cloudera Management Service的所有组件的存储需求,可能会对集群产生以下负面影响:
这里的主题是,必须提前设计好数据存储需求的架构。您必须将每个主机的关键数据存储位置告知操作人员,以便他们能够充分提供您的基础设施并对其进行适当的备份。确保将发现的需求记录在您的内部构建文档和运行手册中。
本主题描述本地磁盘存储和RDBMS存储。这样区别一是为了存储计划,也是为了通知从一个主机到另一个主机的角色迁移、准备备份和其他生命周期管理事件。
下表提供了关于每个Cloudera管理服务的详细信息,使Cloudera Manager管理员能够做出适当的存储和生命周期规划决策。
配置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数据库执行常规的、经过验证的、远程存储的备份。 |
配置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。 |
配合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(?)、计划和最佳实践 | 服务监视器收集关于集群中配置的角色和服务的指标,并运行活动健康测试。这些健康测试不考虑空闲期和使用期,因为它们总是相关的。服务监视器收集指标和健康测试结果,而不考虑集群中的活动水平。即使在空闲集群中,此数据也会继续增长。 |
配置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使用、交换等),并通知主机健康测试。无论集群中的活动水平如何,主机监视器都会收集度量指标和健康测试结果。即使在空闲集群中,这些数据也继续以相当线性的方式增长。 |
配置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发送的条目。本文不讨论警报发布程序,因为它本身没有值得注意的存储需求。 |
配置 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的本地存储数量。定期监视、检查和调整本地存储分配。 |
配置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. |
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或数据存储数据目录提供专用的主轴,以避免与其他读/写活动争用磁盘。
使用parcels包提供CDH和其他组件的Cloudera管理集群需要在以下位置有足够的磁盘空间:
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-agent 或cloudera-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。 |
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地址,因为它表示所有聚合的链接。
配置集群中的每个主机如下,以确保所有成员可以相互通信:
sudo hostnamectl set-hostname foo-1.example.com
/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。
只使用此主机的FQDN编辑/etc/sysconfig/network
HOSTNAME=foo-1.example.com
验证每个主机对网络的一致性标识
运行uname -a
并检查主机名是否与输出的hostname
相匹配。
运行/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
...
运行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
要在集群中的每台主机上禁用防火墙,请在每台主机上执行以下步骤。
sudo iptables-save > ~/firewall.rules
禁用防火墙
兼容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
注意:除了Cloudera Navigator加密之外,Cloudera Enterprise在启用了安全增强的Linux (SELinux)并处于
enforcing
模式的平台上受到支持。Cloudera不负责SELinux策略的开发、支持或实施。如果您在启用SELinux的情况下运行Cloudera软件时遇到问题,请联系您的操作系统提供商寻求帮助。
如果在enforcing
模式下使用SELinux, Cloudera希望您禁用SELinux或将模式更改为permissive
,从而在调查报告的问题时排除SELinux。
安全增强的Linux (SELinux)允许通过策略设置访问控制。如果在使用策略部署CDH时遇到困难,请在将CDH部署到集群之前,在每个主机上将SELinux设置为permissive
模式。
要设置SELinux模式,请在每个主机上执行以下步骤。
检查SELinux状态
getenforce
如果输出是Permissive
或Disabled
,您可以跳过此任务并继续禁用防火墙。如果输出enforcing
,则继续下一步。
打开/etc/selinux/config
文件(在某些系统中,是/etc/sysconfig/selinux
文件)。
将行SELINUX= enforcing
改为SELINUX= permissive
。
保存并关闭文件。
重新启动系统或运行以下命令来立即禁用SELinux
setenforce 0
安装并部署CDH之后,可以重新启用SELinux,方法是将SELinux = permissive
改为SELinux =enforcing
在/etc/selinux/config
(或/etc/sysconfig/selinux
)中执行,然后运行以下命令立即切换到执行模式:
setenforce 1
如果您在使Cloudera软件与SELinux一起工作时遇到困难,请联系您的操作系统供应商获得支持。Cloudera不负责开发或支持SELinux策略。
CDH要求在集群中的每台机器上配置一个网络时间协议(NTP)服务。大多数操作系统包括用于时间同步的ntpd
服务。
RHEL 7兼容的操作系统默认使用chronyd
而不是ntpd
。如果chronyd
正在运行(在任何操作系统上),Cloudera Manager将使用它来确定主机时钟是否同步。否则,Cloudera Manager使用ntpd
。
注意:如果你使用
ntpd
来同步你的主机时钟,但是chronyd
也在运行,Cloudera管理器依赖于chronyd
来验证时间同步,即使它没有正确同步。这可能导致Cloudera管理器报告时钟偏移错误,即使时间是正确的。要解决这个问题,要么配置并使用
chronyd
,要么禁用它并从主机上删除它。
使用ntpd进行时间同步:
兼容RHEL :
yum install ntp
SLES:
zypper install ntp
Ubuntu:
apt-get install ntp
/etc/ntp.conf
文件以添加NTP服务器,如下面的示例所示server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
RHEL 7 兼容:
sudo systemctl start ntpd
RHEL 6 Compatible, SLES, Ubuntu:
sudo service ntpd start
RHEL 7 Compatible:
sudo systemctl enable ntpd
RHEL 6 Compatible, SLES, Ubuntu:
chkconfig ntpd on
ntpdate -u
hwclock --systohc
CDH 6中的Hue需要Python 2.7,它默认包含在RHEL 7兼容操作系统(os)中。
RHEL 6兼容的操作系统包括Python 2.6。在安装或升级到Cloudera Enterprise 6之前,必须在所有Hue主机上安装Python 2.7:
确保您可以访问软件集合库。有关更多信息,请参阅Red Hat知识库文章,如何使用Red Hat软件集合(RHSCL)或Red Hat开发人员工具集(DTS)?
安装Python 2.7
sudo yum install python27
验证是否安装了Python 2.7:
source /opt/rh/python27/enable
python --version
sudo yum install centos-release-scl
sudo yum install scl-utils
sudo yum install python27
source /opt/rh/python27/enable
python --version
sudo wget -O /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo
/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实用程序。
sudo yum install scl-utils
sudo yum install python27
source /opt/rh/python27/enable
python --version
要按照预期执行,Impala取决于软件、硬件和配置的可用性。以下部分将描述需要的配置。
关于各种版本的CDH、Cloudera Manager和各种CDH组件之间的兼容性的最终来源是CDH和Cloudera Manager的产品兼容性矩阵。
Impala支持的相关操作系统和版本与相应的CDH平台相同。有关详细信息,请参阅支持的操作系统页面了解操作系统需求。
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数据库。
安装元数据:
hive
用户。hive-site.xml
以包含与特定数据库匹配的信息:URL、用户名和密码。稍后在Impala安装过程中,您将把hive-site.xml
文件复制到Impala配置目录。尽管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执行器的内存限制比其他执行器低,那么它很容易成为瓶颈,导致性能不佳。
此准则不适用于仅用于协调器的节点。
在连接操作期间,每个连接表中的部分数据被加载到内存中。数据集可能非常大,因此要确保硬件有足够的内存来容纳预期要完成的连接。
虽然需求随数据集的大小而异,但一般建议如下:
Impala版本2.2及更高版本使用SSSE3指令集,该指令集包含在较新的处理器中。
注意:这个所需的处理器级别与Impala版本1.x相同。Impala 2.0和2.1版本对SSE4.1指令集有更严格的要求,现在已经放宽了。
推荐128gb或更高,理想情况下是256gb或更高。如果在特定节点上的查询处理期间的中间结果超过了该节点上Impala可用的内存量,那么查询就会将临时工作数据写入磁盘,这会导致查询时间变长。注意,由于工作是并行的,而且聚合查询的中间结果通常比原始数据小,Impala可以查询和连接比单个节点上可用内存大得多的表。
建议大小为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
用户仍然需要能够访问数据文件。
下面几节描述了在Cloudera管理器中基于包安装CDH的用户权限要求。这些要求是安装和管理包和服务的标准UNIX系统要求。
**重要:**除非另有说明,当需要root或sudo访问时,使用提供root/sudo特权的其他系统(如PowerBroker)是可以接受的。
任务 | 需要的权限 |
---|---|
安装Cloudera Manager Server | 安装CM Server的主机需要有root or sudo权限。 |
使用service 或systemctl 工具启动、停止或重新启动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中运行命令不需要root 或sudo 访问,因为操作是由Cloudera Manager Agent处理的,它已经作为root在运行了。 |
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和托管服务以及第三方组件之前,请确保这些端口在每个系统上都是打开的。如果您使用的是防火墙(如iptables
或firewalld
),并且不能打开所有列出的端口,则必须完全禁用防火墙,以确保功能齐全。
在下面的子部分的表中,每个端口的访问需求列通常是“内部”或“外部”。在此上下文中,“内部”表示端口仅用于组件之间的通信(例如HA配置中的JournalNode端口);“外部”意味着该端口可以用于内部或外部通信(例如,NodeManager和JobHistory Server Web ui使用的端口)。
除非另外指定,否则端口访问要求是单向的,这意味着必须允许到指定端口的入站连接。在大多数现代的有状态防火墙中,没有必要为允许会话上的返回流量创建单独的规则。
下图概述了Cloudera Manager、Cloudera Navigator和Cloudera管理服务角色使用的一些端口:
当启用了包裹的点对点分发时,Cloudera Manager Agent可以从Cloudera Manager服务器或其他Agent获取包裹,如下:
有关详细信息,请参见下表。列出的所有端口都是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以禁用调试服务器。 |
列出的所有端口都是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导航器密钥受信者服务器高可用性中进行复制。 |
列出的所有端口都是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 |
列出的所有端口都是TCP。
在下表中,每个端口的访问需求列通常是“内部”或“外部”。在这种情况下,“内部”意味着端口仅用于组件之间的通信;“外部”意味着该端口可以用于内部通信或外部通信。
组件 | 服务 | Qualifier | 端口 | 外/内部 | 配置 | 说明 |
---|---|---|---|---|---|---|
Hadoop HDFS | NameNode | 8020 | External | fs.default. name orfs.defaultFS |
fs.default. name 被弃用了(但还是有作用) |
|
DataNode | Secure | 1004 | External | dfs.datanode. address |
||
DataNode | 50010 | External | dfs.datanode. address |
|||
WebHDFS | NameNode | 50070 | External | dfs.http. address ordfs.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_ports andkdc_tcp_ports in either the[kdcdefaults] or[realms] sections ofkdc.conf |
By default only UDP |
KRB5 Admin Server | Secure | 749 | TCP | External | kadmind_port in 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:安装和配置数据库。
集群主机可以大致描述为以下类型:
**重要提示:**Cloudera建议在生产环境中使用CDH时始终启用高可用性。
下表描述了不同集群大小的推荐角色分配:
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 |
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 |
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 |
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) |
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) |
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) |
如果要为CDH集群启用数据静态加密,Cloudera建议将密钥托管服务器与其他企业数据中心(enterprise data hub, EDH)服务隔离开来,方法是将密钥托管服务器部署在Cloudera Manager管理的独立集群中的专用主机上。Cloudera还建议在需要访问密钥受信者服务器的EDH服务所在的同一集群的专用主机上部署密钥受信者KMS。这种体系结构可以帮助用户避免在重新启动集群时重新启动密钥托管服务器。
有关在EDH中加密静止数据的更多信息,请参见加密静止数据。
对于一般的生产环境,或者如果您已经为HDFS启用了高可用性,并且正在使用数据静止加密,Cloudera建议您为密钥受信者服务器和密钥受信者KMS启用高可用性。
See:
Cloudera托管两种类型的软件存储库,您可以使用它们来安装Cloudera Manager或CDH-parcel存储库和包存储库等产品。
这些存储库在大多数情况下是有效的解决方案,但有时需要定制安装解决方案。使用cloudera托管的软件库需要通过Internet访问客户端。典型的安装使用最新可用的软件。在某些情况下,这些行为可能不可取,例如:
在这两种情况下,使用内部存储库允许您满足组织的需求,不管这意味着安装特定版本的Cloudera软件,还是在没有Internet访问的主机上安装Cloudera软件。
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提供了类似的功能。
包管理工具依赖于包存储库来安装软件并解决任何依赖需求。有关创建内部存储库的信息,请参见配置本地包存储库。
关于包存储库的信息存储在配置文件中,配置文件的位置根据包管理工具的不同而不同。
例如,在一个典型的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
,另一个名为Updates
。mirrorlist
参数指向一个网站,该网站列出了可以下载该存储库的位置。
[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
您可以通过运行以下命令之一列出启用的存储库:
下面展示了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
您可以通过托管一个内部Web存储库或手动将存储库文件复制到Cloudera Manager服务器主机上,以便分发到Cloudera Manager代理主机上,为Cloudera Manager创建一个打包存储库。
要托管内部存储库,您必须在Cloudera Manager主机可访问的内部主机上安装或使用现有的Web服务器,然后将存储库文件下载到Web服务器主机。本页面中的示例使用Apache HTTP服务器作为Web服务器。如果您的组织中已经有一个Web服务器,您可以跳过下载和发布包裹存储库。
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>
sudo systemctl start httpd
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父目录中看到版本列表。
导航栏
a. 单击顶部导航栏中的包裹图标或单击主机并单击包裹选项卡。
b. 单击Configuration按钮。
菜单
a. 选择管理>设置。
b. 选择类别>包裹。
在“远程包裹存储库url”列表中,单击“添加”符号以打开另一行。
输入到包裹的路径。例如:http:// < web_server > / cloudera-parcels / cdh6/6.2.1 /
输入更改的原因,然后单击Save Changes以提交更改。
要使用本地包裹存储库,请完成以下步骤:
打开Cloudera Manager管理控制台并导航到包裹页面。
选择配置并验证是否设置了本地包裹存储库路径。默认情况下,目录为/opt/cloudera/ package -repo
。
删除任何你不使用的远程包裹存储库url,包括指向Cloudera档案的url。
将要使用的包裹添加到指定的本地包裹存储库目录。有关下载包裹的说明,请参阅下载和发布上面的包裹存储库。
在命令行中,导航到本地包裹存储库目录。
为添加的包裹创建一个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
将包裹和散列文件的所有权更改为cloudera-scm
sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
您可以为Cloudera Manager创建一个包存储库,方法是托管一个内部web存储库,或者手动将存储库文件复制到Cloudera Manager服务器主机,以便分发到Cloudera Manager代理主机上。
重要提示:为下载的Cloudera Manager或CDH选择一个支持的操作系统。参见CDH和Cloudera管理器支持的操作系统。
下面的部分描述了如何使用Apache HTTP服务器创建一个永久的内部存储库:
要托管内部存储库,您必须在Cloudera Manager主机可访问的内部主机上安装或使用现有的Web服务器,然后将存储库文件下载到Web服务器主机。本节中的示例使用Apache HTTP服务器作为Web服务器。如果您的组织中已经有一个Web服务器,那么可以直接下载并发布包存储库。
Install Apache HTTP Server:
sudo yum install httpd
Start Apache HTTP Server:
sudo systemctl start httpd
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
http:///cloudera-repos/
,验证下载的文件是否存在。如果您没有看到任何内容,那么您的Web服务器可能已配置为不显示索引。可以快速创建临时远程存储库,一次性部署包。Cloudera建议使用运行Cloudera管理器的主机,或者网关主机。这个示例使用Python SimpleHTTPServer作为Web服务器来托管/var/www/html
目录,但是您可以使用不同的目录。
/var/www/html
目录下启动Python SimpleHTTPServer:cd /var/www/html
python -m SimpleHTTPServer 8900
Serving HTTP on 0.0.0.0 port 8900 ...
http://:8900/cloudera-repos/
,验证下载的文件是否存在。建立存储库后,修改客户端配置以使用:
OS | Procedure |
---|---|
**RHEL 兼容 | Create /etc/yum.repos.d/cloudera-repo.repo files on cluster hosts with the following content, where [cloudera-repo] name=cloudera-repo baseurl=http:// |
SLES | Use the zypper utility to update client system repository information by issuing the following command:zypper addrepo http:// |
Ubuntu | Create /etc/apt/sources.list.d/cloudera-repo.list files on all cluster hosts with the following content, where deb http:// 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 Manager和CDH。这对于不能使用Cloudera Manager安装所需软件包的环境非常有用,比如不允许无密码sudo的组织。
虽然你可以手动安装软件包,但Cloudera不支持没有Cloudera管理器部署和管理的集群。
注意:如果您选择使用这些说明手动安装CDH,您不能使用Cloudera管理器安装额外的包裹。这可以阻止您使用只能通过包裹提供的服务。
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 |
/etc/default/cloudera-scm-server
文件。找到以export_CMF_JAVA_OPTS
开始的行,并将-Xmx2G
选项更改为-Xmx4G
。Cloudera Manager代理负责启动和停止进程、解压缩配置、触发安装和监视集群中的所有主机。您可以在所有主机上手动安装Cloudera Manager代理,或者在以后的步骤中安装代理。要使用Cloudera Manager安装代理,请跳过本节。
要手动安装Cloudera Manager Agent包,请在每个集群主机(包括那些将运行一个或多个Cloudera管理服务角色的主机:服务监视器、活动监视器、事件服务器、警报发布者或报告管理器)上执行以下操作:
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 |
Property | Description |
---|---|
server_host | 运行Cloudera管理器服务器的主机名。 |
server_port | 运行Cloudera管理器服务器的ip。 |
有关代理配置选项的更多信息,请参见代理配置文件。
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包,请在每个集群主机上执行以下操作:
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 Manager虚拟机镜像:
基于受支持的操作系统实例化虚拟机映像(如果使用Amazon Web Services,则为AMI)并启动虚拟机。有关虚拟化环境的详细信息,请参阅文档。
安装Cloudera管理器并配置数据库。您可以配置本地或远程数据库。
等待Cloudera Manager管理控制台激活。
登录到Cloudera Manager管理控制台。
下载CDH或Cloudera管理器管理的其他服务的任何包裹。不要分发或激活包裹。
登录到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
建Cloudera Manager主机的映像。有关虚拟化环境的详细信息,请参阅文档。
如果您在远程主机上安装了Cloudera Manager数据库,还需要创建数据库主机的映像。
注意:确保在创建映像时没有使用远程数据库的客户机。
要从虚拟机映像创建一个新的Cloudera Manager实例:
实例化Cloudera管理器映像。
如果Cloudera Manager数据库托管在远程主机上,还实例化数据库主机映像。
在Cloudera Manager主机上运行以下命令,确保Cloudera -scm-server服务没有运行:
service cloudera-scm-server status
如果它正在运行,请使用以下命令停止它:
service cloudera-scm-server stop
在Cloudera Manager主机上,在/etc/cloudera-scm-server
目录中创建一个名为uuid
的文件。使用下面的命令为这个文件添加一个全局唯一标识符:
cat /proc/sys/kernel/random/uuid > /etc/cloudera-scm-server/uuid
这个文件的存在通知Cloudera Manager在启动时重新初始化它自己的唯一标识符。
运行以下命令启动Cloudera管理器服务
service cloudera-scm-server start
运行以下命令启用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
基于受支持的操作系统实例化虚拟机映像(如果使用Amazon Web Services,则为AMI)并启动虚拟机。有关虚拟化环境的详细信息,请参阅文档。
从公共包裹存储库或您创建的存储库下载worker主机所需的包裹,并将它们保存到临时目录中。查看Cloudera Manager 6版本并下载相关信息。
从下载包裹的同一位置下载parcel_name.parcel
。每个包裹的sha1文件。
计算并比较下载的包裹的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
打开包裹:
创建以下目录:
/opt/cloudera/parcels
/opt/cloudera/parcel-cache
设置刚刚创建的两个目录的所有权,以便它们属于Cloudera Manager代理运行时的用户名。
使用以下命令设置每个目录的权限:
chmod 755 directory
注意,这些目录的内容是公开的,可以安全地标记为全世界可读的。
作为运行Cloudera Manager代理的同一用户运行,使用以下命令从临时目录中提取包的内容:
tar -zxvf parcelfile -C /opt/cloudera/parcels/
从每个包裹的产品名称添加一个符号链接到/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
通过在/opt/ Cloudera / packages
目录的每个子目录中添加.dont_delete
标记文件(该文件没有内容),在启动时标记不被Cloudera Manager代理删除的包裹。例如:
touch /opt/cloudera/parcels/CDH/.dont_delete
验证文件存在:
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
安装Cloudera管理器代理。如果还没有这样做,请执行第1步:为Cloudera Manager配置存储库。
创建worker主机的映像。有关虚拟化环境的详细信息,请参阅文档。
实例化Cloudera worker主机映像。
编辑以下文件并设置server_host和server_port属性以引用Cloudera Manager服务器主机。
如果需要,执行其他步骤来配置TLS/SSL。参见为Cloudera管理器配置TLS加密。
启动代理服务:
service cloudera-scm-agent start
注意: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可以找到:
注意:此页包含对cdh5组件或从cdh6中删除的特性的引用。这些引用只适用于使用Cloudera Manager 6管理cdh5集群的情况。有关更多信息,请参见已弃用的项。
通过从现有的由Cloudera Manager管理的CDH集群导出集群模板,可以创建新的CDH集群。然后可以修改模板,并使用它在一组新的主机上创建具有相同配置的新集群。使用集群模板:
按照以下常规步骤创建模板和新集群:
要创建集群模板,首先从源集群导出配置。集群必须由Cloudera管理器运行和管理。
要导出配置:
Template - 1
这样的名称。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
要创建模板,请修改下载的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"
} ]
}
要修改模板:
更新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
部分中的每个主机模板执行以下操作:
instantiator
的hosts
部分中找到您希望安装角色的条目。refName
的值复制到hostTemplateRefName
的值。hostNameRange
。使用下列其中之一指示主机范围:
下面是instantiator
的hostTemplates
和hosts
部分正确完成的一个例子:
"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"
} ],
对于具有roleRefNames
行的主机部分,确定角色类型并为角色分配适当的主机。如果角色有多个实例,则必须选择正确的主机。要确定角色类型,请在模板文件中搜索roleRefNames
的值。例如:对于一个名为HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e
的角色ref,如果您搜索该字符串,您会发现类似于下面的部分:
"roles": [
{
"refName": "HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e",
"roleType": "NAMENODE"
}
]
在本例中,角色类型是NAMENODE
。
变量
部分。此部分包含来自源集群的各种属性。您可以在新集群中更改这些值中的任何一个,使之不同,也可以保留从源复制的值。对于显示为的任何值,必须提供正确的值。注:许多这些变量包含关于Hive Metastore和其他CDH组件所使用的数据库的信息。更改这些变量的值以匹配为新集群配置的数据库。
"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文件,纠正所有错误,然后重新运行命令
在浏览器中打开新集群的Cloudera管理器,点击Cloudera管理器的标志进入主页。
单击所有最新命令选项卡。如果导入正在进行,您应该会看到一个标记为import Cluster Template的链接。单击该链接查看导入的进度。
如果任何命令失败,纠正问题并单击重试。你可能需要编辑一些属性在Cloudera管理器。
导入模板后,Cloudera Manager应用自动配置规则,为各种角色设置诸如内存和CPU分配等属性。
如果新集群有不同的硬件或操作需求,则可能需要修改这些值。
您可以使用用Python或其他语言编写的客户机,执行以编程方式导出和导入集群模板的步骤。(您还可以使用上面提供的curl
命令。)
resource = ApiResource("myCluster-1.myDomain.com", 7180, "admin", "admin", version=12)
cluster = resource.get_cluster("Cluster1");
template = cluster.export(False)
pprint(template)
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)
下表列出了Cloudera Manager部署中各种服务之间存在的服务依赖关系。在为Cloudera Manager配置服务时,请参阅下面的表以获得适当的版本。
分别列出了Spark 2对YARN和Cloudera Data Science Workbench的服务依赖关系。
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 |
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 |
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 |
更多版本的依赖参见依赖
Service | Dependencies | Optional Dependencies |
---|---|---|
CDSW/CDH6 | YARNSpark 2 on YARN | HDFSHBaseHiveSolrSentry |
CDSW/CDH5 |
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 | | |
更多版本的依赖参见依赖
Service | Dependencies | Optional Dependencies |
---|---|---|
CDSW/CDH6 | YARNSpark 2 on YARN | HDFSHBaseHiveSolrSentry |
CDSW/CDH5 |
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 |