0896-Cloudera Parcels介绍

2022-09-19 16:42:39 浏览数 (2)

Parcel是一种二进制分发格式,包含程序文件以及Cloudera Manager使用的其它元数据。安装包和Parcel之间的重要区别是:

  • Parcel会被独立的安装在一个显示版本的文件夹中,这意味着你可以并行安装多个版本的Parcel。然后你在使用的时候将其中一个安装版本指定为活动版本。如果使用安装包的话,一次只能安装一个包,所以安装的包和活动的包没有区别。
  • 滚动升级需要Parcels。
  • 你可以在文件系统中的任何位置安装Parcel,它们默认安装在/opt/cloudera/parcels中。相反,软件包一般是安装在/usr/lib中。
  • 当你从Parcels页面安装时,Cloudera Manager会在集群中的所有主机上选择对应操作系统的正确Parcel进行自动下载,分发和激活。集群中所有主机必须运行Cloudera支持的相同的大版本操作系统,比如都是Redhat7.x。Cloudera Manager必须在与其管理的至少一个集群相同的大版本操作系统版本上运行,Cloudera Support才会提供标准支持。集群中主机运行不同的次要版本(minor version)的风险被认为低于运行不同的大版本(major version)。Cloudera建议集群中所有主机运行完全相同的操作系统版本,主要为了方便故障排查跟进和提供专业支持。

注意Cloudera Manager管理Parcel,无需用户在文件系统中操作Parcel。如果你执行以下任何不受支持的操作,可能会导致集群中出现故障或意外情况:

  • 安装自定义的RPM包,并将其保存到Cloudera Manager的Parcel目录。
  • 下载Parcel并将其手动放置在Cloudera Manager的Parcel目录。
  • 在Parcel的根目录或者其子目录手动添加、修改和删除文件。

1.Parcels的优势

由于其独特的属性,Parcel比安装包具有以下优势:

  • 将Cloudera Runtime作为单个对象分发 - 不是为Cloudera Runtime的每个组件提供单独的安装包,而是作为单个对象分发。这使得将软件分发到没有联网的集群中更加容易。
  • 内部一致性 - 所有Cloudera Runtime组件都匹配,消除了安装不同版本组件的可能性。
  • 在/usr之外安装 - 在某些环境中,Hadoop管理员没有安装系统包的权限。使用Parcel,管理员可以安装到/opt或其他任何地方。注意对于Parcel,Cloudera Runtime的Library的路径是/opt/cloudera/parcels/CDH/lib,而不是通常的/usr/lib。不要将/usr/lib/中的元素链接到Parcel部署的路径,因为这些链接会导致区分两个路径的脚本不起作用。
  • 不需要使用sudo安装Cloudera Runtime - Parcel安装由以root或其他用户身份运行的Cloudera Manager Agent处理,因此你可以在不使用sudo的情况下安装Cloudera Runtime。
  • 解耦分发和激活 - 借助并行安装功能,你可以在切换新的Cloudera Runtime之前,还是使用旧的版本。这允许在不影响集群操作的情况下提前完成升级中最耗时的部分,从而减少停机时间。
  • 滚动升级 - 使用安装包需要你关闭旧进程,升级包,然后启动新进程。如果遇到错误很难恢复,而且升级程序需要与安装包管理系统无缝集成才能无缝完成升级。而使用Parcel,你可以简单地通过修改重新启动每个进程时使用的Cloudera Runtime版本,就可以完成切换。你还可以通过滚动重启执行升级,服务角色会以正确的顺序重新启动并切换到新版本,以实现最小化服务中断。大版本的升级比如从CDH5升级到CDH6,需要完整的重新启动并规划停机窗口,因为版本之间变化太大。最后你还可以升级单台机的Parcel或者同时升级多台机器的Parcel。
  • 升级管理 - Cloudera Manager管理CDH或Cloudera Runtime版本升级中的所有步骤。而如果使用软件安装包安装,Cloudera Manager仅能作用于初始安装。
  • 附加组件 - Parcels不限于Cloudera Runtime,你还可以为第三方组件制作Parcel包。
  • 兼容其他分发工具 - Cloudera Manager可以与用于下载和分发的其他工具比如Puppet一起使用。对于离线安装,你也可以手动下载Parcel包,然后通过Cloudera Manager将Parcel分发到集群。

2.Parcel生命周期

为了最小化集群的中断并实现Parcel的添加和升级,Parcel包括以下阶段:

  • 已下载(Downloaded) - Parcel已经复制到Cloudera Manager Server的parcel目录,可用于分发到集群中的任何其他主机,你也可以将多个Parcel下载到Cloudera Manager Server。如果一个Cloudera Manager Server管理了多个集群,一个已下载的Parcel包则为出现在页面上按集群分类的不同区域。
  • 已分发(Distributed) - Parcel已经被复制到集群的所有主机,各个组件也已经被解压缩。分发的Parcel包不会升级运行在集群中的组件,当前服务继续运行不变。你可以在集群中分发多个Parcel,分发Parcel也不需要能上外网。每个Cloudera Manager Agent从Cloudera Manager Server上的本地Parcel存储库下载Parcel。
  • 已激活(Activated) - Parcel中组件的链接已经被创建,激活不会自动停止或重新启动当前服务。你可以在激活后重新启动服务,或者系统管理员确认何时执行该操作。
  • 使用中(In Use) - 当你启动或者重新启动使用这些组件的服务时,集群主机上的Parcel组件就是正在使用中。
  • 已停用(Deactivated) - 指向Parcel组件的链接已从集群主机中删除。
  • 已移除(Removed) - Parcel组件已从集群主机中移除。
  • 已删除(Deleted) - 从Cloudera Manager Server上的本地Parcel存储库中删除Parcel。

当有新Parcel可用时,Cloudera Manager会自动检测到,你可以将Cloudera Manager配置为自动下载和分发Parcel。 

3.Parcel位置

Cloudera Manager Server上本地parcel目录的默认位置是/opt/cloudera/parcel-repo,也可以通过配置更改该位置。

托管主机上已分发的Parcel默认位置是/opt/cloudera/parcels。要更改此位置,可以在Cloudera Manager Agent的 /etc/cloudera-scm-agent/config.ini文件中设置 parcel_dir属性并重新启动Cloudera Manager Agent。

4.管理Parcels

在Cloudera Manager的‘Parcels’页面上,你可以管理Parcel的安装和激活,并确定在集群中运行哪个版本的Parcel,‘Parcels’页面上会显示被管理的parcel列表。Cloudera Manager显示每个Parcel的名称,版本和状态,以及对Parcel能进行的操作。

4.1.访问Parcels页面

通过执行以下操作之一访问Parcels页面:

  • 单击顶部导航栏中的Parcel图标。
  • 单击顶部导航栏中的Hosts,然后单击Parcels选项卡。

使用“Parcels”页面左侧的选择器过来显示的parcels:

  • Location选择器 - 查看某个集群的可用的parcel,或者查看多个集群的可用parcel,或者查看远程可用的parcel。点击进入“Parcels”页面时,这个选择器默认选择远程可用(Available Remotely)。
  • Filters选择器中的Error Status - 按错误状态限制显示数的Parcel列表。
  • Filters选择器中的Parcel Name - 按Parcel名称限制显示数的Parcel列表。
  • Filters选择器中的Status - 限制显示数的Parcel列表,列表包括已分发的parcels,未分发(Other)的parcels,和所有parcels。

当一个parcel下载好以后,它会出现在Cloudera Manager管理的每个集群的列表中,表明该parcel可以在这些集群上进行分发。Cloudera Manager Server上只有一份已下载parcel包的副本,当分发包完成后,Cloudera Manager会将parcel包复制到该集群的所有主机。

例如如果Cloudera Manager正在管理两个集群,则All Clusters页面中的行列出与两个集群有关的Parcel信息。Status列显示Parcel的当前状态,Version列显示有关Parcel的版本信息,单击information图标(小i图标)可以查看Parcel的发行说明。Action列显示你可以对Parcel执行的操作,例如下载、分发、删除、停用和从主机中移除。

4.2.下载Parcel

1.转到Parcels页面,在Location选择器中,点击ClusterName或者Available Remotely,可供下载的Parcel会显示“Available Remotely”状态或者“Download”按钮。

如果此处未显示你想要的Parcel,比如你想要升级到不是最新版本的CDH版本,你可以使用其他远程Parcel存储库,也可以配置使用本地的Parcel存储库位置或其他位置。

如果Parcel版本太新而无法被Cloudera Manager版本支持,Parcel会显示为红色背景并报错:

当你在Filters选择器的Error Status区域选择Error状态时,也会列出此类Parcel。

2.单击Download按钮,parcel会被下载到你本地的存储库,状态会更改为Downloading(正在下载)。

parcel下载完成后,它会从“Available Remotely”页面中移除。

4.3.分发Parcel

下载完成的Parcel可以分发到集群中的主机,并可供激活。Parcel被下载到Cloudera Manager Server,如果CM管理了多个集群,Parcel是对所有集群都可用的,当然你可以选择分发到特定的集群。

1.从Parcels页面左侧的Location选择器中,选择你想要分发Parcel的集群,或者选择All Clusters,打开Parcels页面默认选择的是第一个集群。

2.单击Distribute,状态会被更改为Distributing(正在分发),在分发期间,你可以:

  • 单击Status列中的Details链接以查看Parcel Distribution Status页面,也就是查看Parcel分发的细节。
  • 单击Cancel可以取消分发,分发操作完成后,按钮会变为Activate,你也可以单击Distributed状态链接查看状态页面。

分发不需要访问外网,集群主机上的Cloudera Manager Agent从Cloudera Manager Server上托管的本地parcel存储库下载 parcel。

如果你有很多主机需要分发Parcel,你可以设置Cloudera Manager分发的并行数量。

要删除准备分发的Parcel,单击Distribute按钮右端的三角形并选择Delete,这将从本地Parcel存储库中删除Parcel。

4.4.激活Parcel

已分发到集群中主机的Parcel可以被激活。

1.在Parcels页面的Location选择器中,选择ClusterNameAll Clusters,然后单击Activate,这个操作会更新Cloudera Manager指向新的软件,但是需要重新启动服务才能生效,点击Activate后,会有一个弹窗提示必须重新启动哪些服务才能使用新Parcel。

2.选择以下选项之一:

  • Restart  - 激活Parcel并重新启动受新Parcel影响的服务。
  • Activate Only - 仅激活Parcel,你可以选择其他时间窗口来重启服务,如果不重启服务,集群会依旧使用旧的Parcel。

3.点击OK

激活新Parcel会停用之前用的Parcel,但是在重新启动服务前,之前的Parcel会显示Still in use状态,因为服务正在使用该Parcel,所以你也不能移除该Parcel。

如果你想要激活的Parcel仅仅只是更新了某个组件,你依旧需要重新启动所有服务,比如你的集群运行了HDFS,YARN,Oozie,Hue,Impala和Spark服务,而Parcel包仅仅只是更新了Oozie,弹出的提示框让你仅重启Oozie和Hue服务,但是在你重启其他服务之前,HDFS、YARN、Impala和Spark服务依旧使用的是旧的Parcel,直到你重新启动剩余的这些服务。

有时可能需要额外的升级步骤,在这种情况下,按钮将显示Upgrade而不是Activate。

4.5.停用Parcel

你也可以停用新激活的Parcel,它会让Cloudera Manager指向以前的Parcel版本,但是需要重新启动服务才会生效。在Parcels页面中,在Location选择器中选择ClusterNameAll Clusters,然后单击激活的Parcel上的Deactivate按钮。

注意如果你只安装一个Parcel,停用该Parcel尝试重新启动服务时将会失败。

4.6.移除Parcel

Parcels页面的Location选择器中,选择ClusterNameAll Clusters,单击Activate按钮右侧的

,然后选择Remove from Hosts

4.7.删除Parcel

Parcels页面的Location选择器中,选择ClusterNameAll Clusters,单击Distribute按钮右侧的

,然后选择Delete。注意除非你确认Parcel没有被任何Cloudera Manager管理的集群用到,否则不要轻易使用Delete选项,可以选择Remove from Hosts。

4.8.修改Parcel目录

Parcel目录的默认位置是/opt/cloudera/parcels,要将已分发的Parcel修改到不同的目录,可以执行以下操作:

1.停止所有服务。

2.停用所有正在使用的包裹。

3.停止所有主机上的 Cloudera Manager Agent服务。

4.将现有Parcel移动到新位置。

5.修改主机Parcel目录配置,参见“Parcel目录设置”章节。

6.启动 Cloudera Manager  Agent服务。

7.激活Parcel。

8.启动所有服务。

4.9.常见问题

如果你在执行Parcel操作时遇到错误,请单击Parcel页面上的红色“X”图标会显示一条消息,指出错误的来源。

如果Parcel正在分发但一直未完成,请确保Parcel下载目录中有足够的可用空间,因为即使空间不足,Cloudera Manager也会尝试下载和解压缩Parcel。

5.查看Parcel使用

Parcel Usage页面显示集群中当前使用的Parcel,在大规模集群环境中,可以比较方便的跟踪集群安装的不同版本,尤其是部分主机在安装或者升级过程中出现问题,或者新扩容了几台主机,查看Parcel的使用情况页面:

1.执行以下操作之一:

  • 单击左侧导航栏中的Parcel图标。
  • 单击顶部导航栏中的Hosts,然后单击Parcel选项卡。

2.单击Parcel Usage按钮。

你可以按集群或按产品查看Parcel使用情况,你还可以仅查看运行活动Parcel的主机,或仅查看运行旧Parcel(不是当前活动Parcel)的主机,或两者同时查看。

右侧的正方形小方块代表集群中的每台主机,以及该主机上的Parcel状态。如果主机正在从当前激活的Parcel运行进程,则主机以蓝色指示。黑色方块表示一个Parcel已被激活,但所有正在运行的进程都来自早期版本的Parcel。例如如果你在激活新Parcel后没有重新启动服务或角色,则会发生这种情况。

将光标移动到以下位置可以查看主机分配的机架,不同机架上的主机显示在不同的行中。

要查看给主机上运行的Parcel版本,请单击代表主机的方块。

弹出窗口列出了在所选主机上运行的角色,单击角色会打开角色所在的页面,同时这个弹窗也显示了Parcel是否处于活动状态。

如果主机正在运行各种Parcel版本,则代表主机的正方形是一个四方形网格图标。当你将光标移到该主机上时,将显示活动和非活动组件。例如在下图中,较旧的CDH包已停用,但仅重新启动了HDFS服务。

6.Parcel配置设置

你可以配置Parcel在Cloudera Manager Server主机上的存储位置、Parcel存储库的URL、下载Parcel的代理服务器属性以及分发到集群主机的Parcel的存储位置。

6.1.配置Cloudera Manager Server Parcel设置

最低要求角色:Cluster Administrator,或者使用Full Administrator

1.使用以下方法之一打开Parcel设置页面:

  • 导航栏
    • 单击左侧导航栏中的Parcel图标,或单击Hosts,然后单击Parcel选项卡。
    • 单击Configuration按钮。
  • 菜单
    • 选择Administration > Settings
    • 选择Category > Parcels

2.指定一个属性

  • Local Parcel Repository Path定义Cloudera Manager Server主机上存储下载Parcel的路径。
  • Remote Parcel Repository URLs是Cloudera Manager检查包裹的存储库列表,默认情况下这里列出的是最新的CDP的下载地址,不过需要集群能上外网。当然你也可以自定义成自己本地的存储库。

添加一个Parcel存储库:

  • 在Remote Parcel Repository URLs list中,单击添加符号会新增一行。
  • 输入存储库的路径。

3.点击Save Changes。

你也可以:

  • 设置Cloudera Manager检查新Parcel的频率。
  • 配置代理以访问远程存储库。
  • 配置在检测到新Parcel时是否应自动下载和分发Parcel。默认不启用自动下载和分发,需要转到Parcel页面启动这些操作。
  • 如果启用自动下载,可以控制可以下载哪些产品。
  • 控制是否保留下载的Parcel。
  • 控制是否保留旧Parcel版本以及保留多少Parcel版本。

你可以通过配置带宽限制和并发上传数量来调整网络上的Parcel分发负载,默认值是50MB/s和10个并发Parcel上传(最大设设置为50),通过配置Parcel Distribution Rate Limit和Maximum Parcel Uploads来完成。

6.2.配置代理服务器

要配置代理服务器,将Parcel下载到Cloudera Manager Server并上传,请执行以下操作:

1.选择Administration > Settings

2.单击Network类别。

3.配置代理属性。

4.输入Reason for change,然后单击Save Changes

6.3.配置主机Parcel目录

如果你修改Parcel目录位置,请确保所有主机使用相同的位置,在不同主机上使用不同位置可能会导致意外。配置分布式Parcel的位置:

1.单击左侧导航栏中的Hosts

2.单击Configuration选项卡。

3.选择Category > Parcels

4.配置Parcel Directory属性的值,Cloudera Manager Agent配置文件中的parcel_dir属性设置会覆盖此设置。

5.输入Reason for change,然后单击Save Changes

6.在所有主机上重新启动Cloudera Manager Agent。

6.4.配置Parcel的点对点分发

Cloudera Manager使用点对点(peer-to-peer)服务将Parcel有效地分发到集群主机,该服务默认启用并配置为在端口7191上运行。你可以更改此端口号,也可以禁用点对点分发。

要修改Parcel的点对点分发:

1.打开Cloudera Manager并选择Hosts > All Hosts > Configuration

2.将P2P Parcel Distribution Port属性的值更改为新的端口号,将该值设置为0可以禁用Parcel的点对点分发。

3.输入Reason for change,然后单击Save Changes

0 人点赞